IBM Support

PM76060: EGLSDK not complient with RTC API's to lacate ccubldc.exe

Subscribe

You can track all active APARs for this component.

 

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