Migration to jdk9.
whitingjr Mar 2, 2017 6:38 AMHi,
I am looking to migrate a working benchmark application from jdk8 to jdk9. The application uses remote EJB calls as part of the workload.
I am seeing an error on the client during initialisation by the ServiceLoader of the marshalling-river provider library.
<record> <host>burtha</host> <date>2017-03-01T14:31:09.660617Z</date> <millis>1488378669660</millis> <nanos>617000</nanos> <sequence>8</sequence> <logger>com.sun.faban.driver.engine.TimeThread.0</logger> <level>WARNING</level> <class>com.sun.faban.driver.engine.AgentThread</class> <method>invokePrePost</method> <thread>30</thread> <message>AcmeDriverAgent[0].0.initializeAndAudit: null</message> <exception> <message>java.lang.ExceptionInInitializerError</message> <frame> <class>org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver</class> <method><init></method> <line>156</line> </frame> <frame> <class>org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector</class> <method>setupEJBReceivers</method> <line>163</line> </frame> <frame> <class>org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector</class> <method>getCurrent</method> <line>118</line> </frame> <frame> <class>org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector</class> <method>getCurrent</method> <line>47</line> </frame> <frame> <class>org.jboss.ejb.client.EJBClientContext</class> <method>getCurrent</method> <line>281</line> </frame> <frame> <class>org.jboss.ejb.client.EJBClientContext</class> <method>requireCurrent</method> <line>291</line> </frame> <frame> <class>org.jboss.ejb.client.EJBInvocationHandler</class> <method>doInvoke</method> <line>178</line> </frame> <frame> <class>org.jboss.ejb.client.EJBInvocationHandler</class> <method>invoke</method> <line>146</line> </frame> <frame> <class>com.sun.proxy.$Proxy38</class> <method>setPropertyOnDB</method> </frame> <frame> <class>org.acme.enterprise.driver.AcmeDriver</class> <method>initializeRunConfig</method> <line>166</line> </frame> <frame> <class>org.acme.enterprise.driver.AcmeDriver</class> <method>initializeAndAudit</method> <line>130</line> </frame> <frame> <class>jdk.internal.reflect.NativeMethodAccessorImpl</class> <method>invoke0</method> </frame> <frame> <class>jdk.internal.reflect.NativeMethodAccessorImpl</class> <method>invoke</method> <line>62</line> </frame> <frame> <class>jdk.internal.reflect.DelegatingMethodAccessorImpl</class> <method>invoke</method> <line>43</line> </frame> <frame> <class>java.lang.reflect.Method</class> <method>invoke</method> <line>543</line> </frame> <frame> <class>com.sun.faban.driver.engine.AgentThread</class> <method>invokePrePost</method> <line>414</line> </frame> <frame> <class>com.sun.faban.driver.engine.AgentThread</class> <method>preRun</method> <line>347</line> </frame> <frame> <class>com.sun.faban.driver.engine.TimeThread</class> <method>doRun</method> <line>87</line> </frame> <frame> <class>com.sun.faban.driver.engine.AgentThread</class> <method>run</method> <line>202</line> </frame> </exception> </record>
This is using WF10.1. Which bundles 1.4.11.Final of marshalling and marshalling-river.
It is at line 156 the j.l.ExceptionInInitializerError is thrown.
There is another post [2] that has the error and the same class. That post flags an issue using OSGI. Which makes me suspect encapsulation behaviour of OSGI and Jigsaw is causing a problem loading marshalling-river.
Has this been seen already with Jigsaw jdk9 ?
Jeremy