Fixes are available
APAR status
Closed as program error.
Error description
Environment: Rational Business Developer 8.5 Problem description The EGLSDK can't work together with the RTC Client plainJavaLib. When we call the EGLSDK like this: com.ibm.etools.egl.util.EGLSDK eglsdk = new com.ibm.etools.egl.util.EGLSDK(); eglsdk.process(newArgs); The lookup for the Install Bin Directory don't work if the the RTC Client plainJavaLib was call before the EGLSDK. So the ccubldc.exe will not be located and the prepare step failed. The reason is that eclipse/OSGi demon is still running. The current implementation of the EGLSDK are using the bun = Platform.getBundle('com.ibm.etools.egl.distributedbuild'); to check for Eclipse/not Eclipse but this is not stable if you want to integrate with RTC. Have decompiled the code that give us the problem: The class BuildUtilities have this method: public static String getInstallBinDirectory() { String installBinDirectory = ''; Bundle bun = null; try { bun = Platform.getBundle('com.ibm.etools.egl. distributedbuild'); } catch(NoClassDefFoundError _ex) { return installBinDirectory; } try { String pathBin = 'executables'; boolean isWindows = System.getProperty('os.name', ''). toLowerCase().indexOf('windows') != -1; if(isWindows) pathBin = (new StringBuilder(String.valueOf(pathBin))). append('/Win').toString(); else pathBin = (new StringBuilder(String.valueOf(pathBin))). append('/Linux').toString(); URL defaultTemplateDirURL = FileLocator.resolve(bun.getEntry (pathBin)); installBinDirectory = defaultTemplateDirURL.getPath(); if(isWindows ?? (installBinDirectory.startsWith('\\') || installBinDirectory.startsWith('/'))) installBinDirectory = installBinDirectory.substring(1); } catch(IOException _ex) { } return installBinDirectory; } Ths problem is in this construction: try { bun = Platform.getBundle('com.ibm.etools.egl. distributedbuild'); } catch(NoClassDefFoundError _ex) { return installBinDirectory; } When Eclipse/Osgi was in the 'air' before this code block the demon is still running, so the bun = Platform.getBundle('com.ibm.etools.egl.distributedbuild'); do not throw an exception, but the bun value is null because the eclipse with RBD is not running. Sugested change is the the code validate for bun = null. If this is true the methos also return installBinDirectory;
Local fix
Problem summary
A Null Pointer Exception is thrown during the distributed build process if ceratin RTC methods are invoked prior to using EGLSDK (Such as com.ibm.team.repository.client.TeamPlatform.startup())
Problem conclusion
The distributed build code has been changed to check for Null and to monitor for ANY exception that is thrown when determining if the eclipse workspace it running.
Temporary fix
Comments
APAR Information
APAR number
PM76060
Reported component name
RATL BUS DEV
Reported component ID
5724S5000
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-10-29
Closed date
2013-10-28
Last modified date
2013-10-28
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RATL BUS DEV
Fixed component ID
5724S5000
Applicable component levels
R850 PSY
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
28 October 2013