0
votes

We have upgraded Lotus Domino upgrade from Version 6.5.3 to 8.5.2, After upgrading we are getting initialization error while calling Java methods.

The classes are kept at a location say d:\javaclasses and an entry is made in notes.ini as shown below JavaUserClasses=.;d:\javaclasses;d:\javaclasses\lib... etc.

Everything call to java works on Version 6.5.3 however it does not work on 8.5.2.

We have not changed any java files, Just copied from older version to new version server at the same location

Note: d:\javaclasses classes are compiled using JDK1.3, Domino Version 6.5.3 uses JDK1.3 native library, Domino Version 8.5.2 uses JDK1.6 native library inbuilt

Stack trace for reference.

java.lang.NoClassDefFoundError: com.centtric.td.cprm.AppSource (initialization failure)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
 at com.centtric.td.cprm.Coverage.<init>(Coverage.java:87)
 at com.centtric.td.cprm.Coverage.find(Coverage.java:572)
 at CPRMLib.deleteCoverage(CPRMLib.java:913)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at lotus.domino.JavaConnectLoader.invoke(Unknown Source)
Caused by: 
java.lang.NullPointerException
 at com.centtric.connectors.JDBCConnector.closeStatements(JDBCConnector.java:484)
 at com.centtric.connectors.JDBCConnector.closeAll(JDBCConnector.java:431)
 at com.centtric.td.cprm.AppSource.init(AppSource.java:70)
 at com.centtric.td.cprm.AppSource.get(AppSource.java:79)
 at com.centtric.td.cprm.AppSource.<clinit>(AppSource.java:32)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
1
It looks like the class loader found com.centtric.td.cprm.AppSource. While it was initializing that class, the com.centtric.connectors.JDBCConnector.closeStatements method threw NullPointerException (at line 484). Can you tell us more about the com.centtric classes? Do you have access to the source code? It would help to see the code at line 484 of JDBCConnector. - Dave Delay

1 Answers

0
votes

It's hard to say, but it looks like your new JVM either is missing some native libraries, or don't have the same classpath as your old JVM has. Are you sure the ini-file format hasn't changed?

J9VMInternals is an IBM-specific class that takes care of classloading and stuff.