View Only

A Java bug causes a Java Error on ITCAM Agent startup

By Kristen Meren posted Wed October 03, 2018 12:00 AM

by Ray Rosales

When an ITCAM agent is started up, you might encounter the following Java error- 

Exception in thread "main" java.lang.ExceptionInInitializerError

        at java.lang.J9VMInternals.initialize(

        at java.nio.file.FileSystems.getDefault(

        at sun.util.calendar.ZoneInfoFile$

        at sun.util.calendar.ZoneInfoFile$




The ITM install team has determined that most like cause of this issue is the following Java bug:

which is closed as a duplicate of:


JDK-705070 appears to indicate that the fix was made available in some

level of Java 8. It is not clear exactly which level.

ITM uses JRE7 as the "CANDLEHOME JRE". There is no plan to update the CANDLEHOME JRE to version 8.

It was determined that the file system where /opt/IBM/ITM is mounted, when unmounted, had permissions of 700. The solution was to unmount the

filesystem, fix the permissions, then remount the file system with commands something like the following:

ls -ld /opt/IBM/ITM

umount /opt/IBM/ITM

ls -ld /opt/IBM/ITM

chmod 755 /opt/IBM/ITM

ls -ld /opt/IBM/ITM

mount /opt/IBM/ITM

ls -ld /opt/IBM/ITM

There is a A TEMPORARY work-around but it is not recommended for a production environment or a permanent solution. You can however try it to determine if the Java bug is the reason for the Java Error during agent startup. The above solution would be the recommended method for resolving the issue:

Modify /opt/IBM/ITM/bin/CandleAgent, and insert this line right before the ITM Java code  ($print $JREEXE -classpath ...) gets called:

cd $HOME


So, the last lines of CandleAgent will become:

  if [[ -f ${CANDLEHOME}/bin/.agent.${product} ]];


    ${CANDLEHOME}/bin/.agent.${product}  -ch $CANDLEHOME $BATCHOPT


-a $cArch $action $product


    cd $HOME

    $print $JREEXE -classpath $CLASSPATH $SAFE_MODE



ITMinstall.CandleAgent -ch $CANDLEHOME $BATCHOPT $


$cArch $action $product





This will make sure the ITM Java code is not launched in /opt/IBM/ITM, which was causing this problem, due to insufficient permissions. And it will force the ITM Java code to be launched in $HOMEAgain this is only a test fix.