Search the FirstSpirit Knowledge Base
Hello,
I am getting the below exception,
After editing the single news entry in BZO news datasurce, if I try to save and lock the view mode means I am getting the below error,
java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil
Oracle Version:Oracle_JDBC_driver-5.1.209-1.3
Java Version:Jdk7
Dear André Pfeiler,
we checked your assumption for old/duplicate JDBC Oracle jars being loaded. Here, the JVM offers the option "verbose:class". With that setting the JVM documents which classes are loaded from which JAR. Currently, we could just identify within the Tanuki Wrapper log the following single output:
... | ... |
INFO | jvm 1 | | 2014/08/11 16:48:06 | [Loaded oracle.jdbc.driver.ResultSetUtil from file:/opt/wcms/fs/work/ModuleManager/Oracle_JDBC_driver_448bcc0f/lib/ojdbc6.jar] |
... | ... |
We also filtered for "oracle.jdbc.driver" package and just could find a JAR named "ojdbc6.jar" where the classes are taken from. The conclusion: no duplicate JDBC drivers being loaded, currently.
Regarding the change of the driver:
from: ojdbc6.jar, version 11.2.0.1.0
to: ojdbc7.jar, version 12.1.0.2
including a FirstSpirit server restart we observed:
- problem has gone
Although, the Oracle DB server does not match the driver version!
hi,
please, post the complete exception stacktrace as plain text. are you calling those(..ResultSetUtil) internal oracle jdbc classes directly?
--
andre
Hello,
Below is my log trace for the proble.Please have a look on it.
FSVersion=FSVersion=5.1.209.63675#4072
oracle/jdbc/driver/ResultSetUtil
oracle/jdbc/driver/ResultSetUtil - java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil - Aug 12, 2014 3:03:59 PM
FSVersion=5.1.209.63675#4072;JDK=1.7.0_55 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=12.08.2014 15:03:59
java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:829)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:1203)
at oracle.jdbc.driver.T4CPreparedStatement.<init>(T4CPreparedStatement.java:28)
at oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:67)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.or.impl.connection.ConnectionInvocationHandler.invoke(ConnectionInvocationHandler.java:81)
at com.sun.proxy.$Proxy22.prepareStatement(Unknown Source)
at de.espirit.or.impl.oracle.OracleSQLBuilder.createStatementForUpdate(OracleSQLBuilder.java:22)
at de.espirit.or.impl.generic.GenericSQLBuilder.createSelectForUpdate(GenericSQLBuilder.java:50)
at de.espirit.or.impl.TemporalCommandHandler.getEntry(TemporalCommandHandler.java:701)
at de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:126)
at de.espirit.or.impl.CreateRelationCommand.accept(CreateRelationCommand.java:142)
at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:796)
at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:74)
at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.commit(ContentManagerImpl.java:1295)
at de.espirit.firstspirit.content.ContentManagerImpl.commit(ContentManagerImpl.java:687)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:97)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:68)
at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:597)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:564)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:418)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:55)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)
at de.espirit.firstspirit.server.$Proxy31.commit(Unknown Source)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.commit(SessionHandlerImpl.java:126)
at de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:216)
at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:589)
at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.save(DatasetImpl.java:1154)
at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.save(DatasetImpl.java:1199)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.writeToServer(AbstractGuiStoreElement.java:671)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.GuiDataset.writeToServer(GuiDataset.java:303)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.store(AbstractGuiStoreElement.java:1332)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:602)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:591)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:575)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:566)
at de.espirit.firstspirit.client.action.SaveAction.actionPerformed(SaveAction.java:77)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:161)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:138)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:131)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
2155673812295624549 - Admin (Admin), session: 2155673812295624549, project: 5744277
(de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil
(de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil - Aug 12, 2014 3:03:59 PM
FSVersion=5.1.209.63675#4072;JDK=1.7.0_55 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=12.08.2014 15:03:59
java.lang.IllegalAccessError: oracle/jdbc/driver/ResultSetUtil
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:829)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:1203)
at oracle.jdbc.driver.T4CPreparedStatement.<init>(T4CPreparedStatement.java:28)
at oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:67)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.or.impl.connection.ConnectionInvocationHandler.invoke(ConnectionInvocationHandler.java:81)
at com.sun.proxy.$Proxy22.prepareStatement(Unknown Source)
at de.espirit.or.impl.oracle.OracleSQLBuilder.createStatementForUpdate(OracleSQLBuilder.java:22)
at de.espirit.or.impl.generic.GenericSQLBuilder.createSelectForUpdate(GenericSQLBuilder.java:50)
at de.espirit.or.impl.TemporalCommandHandler.getEntry(TemporalCommandHandler.java:701)
at de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:126)
at de.espirit.or.impl.CreateRelationCommand.accept(CreateRelationCommand.java:142)
at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:796)
at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:74)
at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.commit(ContentManagerImpl.java:1295)
at de.espirit.firstspirit.content.ContentManagerImpl.commit(ContentManagerImpl.java:687)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:97)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:68)
at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:597)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:564)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:418)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:55)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)
at de.espirit.firstspirit.server.$Proxy31.commit(Unknown Source)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.commit(SessionHandlerImpl.java:126)
at de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:216)
at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:589)
at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.save(DatasetImpl.java:1154)
at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.save(DatasetImpl.java:1199)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.writeToServer(AbstractGuiStoreElement.java:671)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.GuiDataset.writeToServer(GuiDataset.java:303)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.store(AbstractGuiStoreElement.java:1332)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:602)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:591)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:575)
at de.espirit.firstspirit.client.gui.tree.store.AbstractGuiStoreElement.save(AbstractGuiStoreElement.java:566)
at de.espirit.firstspirit.client.action.SaveAction.actionPerformed(SaveAction.java:77)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:161)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:138)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:131)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
please check if you have different version of oracle jdbc drivers in your classpath
this Oracle_JDBC_driver-5.1.209-1.3 is not a valid version
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
Dear André Pfeiler,
the correct Oracle JDBC driver we use and package with the FirstSpirit module is:
- 11.2.0.1.0
The JDBC-driver file name: "ojdbc6.jar" officially offered by Oracle below:
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
Currently, we use an Oracle JVM version 7 update 65 on server-side. But as byte-code from lower versions can be used in higher versions, this shouldn't be an issue. Do you agree?
Holger King wrote:
Dear André Pfeiler,
the correct Oracle JDBC driver we use and package with the FirstSpirit module is:
- 11.2.0.1.0
The JDBC-driver file name: "ojdbc6.jar" officially offered by Oracle below:
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
Currently, we use an Oracle JVM version 7 update 65 on server-side. But as byte-code from lower versions can be used in higher versions, this shouldn't be an issue. Do you agree?
Hi Holger King,
yes, agree. jdk6 bytecode should be compatible wih jdk7. the classes (OracleStatement.->ResultSetUtil
) are package protected so they should be accessible. did you test the newest driver version 11.2.0.4 or 12.1.0.1? firstspirit does not call any internal oracle jdbc classes, so i assume theres an old/duplicate odbc jar on the classpath?
i wonder, oracle explicite notes: ojdbc6.jar (2,739,670 bytes) - Classes for use with JDK 1.6.
and at http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
ojdbc7.jar (3,397,734 bytes) - For use with JDK 7
so may be there is an internal problen we could not figure out? so i think 12.1.0.1 should work with jdk7
Dear André Pfeiler,
we checked your assumption for old/duplicate JDBC Oracle jars being loaded. Here, the JVM offers the option "verbose:class". With that setting the JVM documents which classes are loaded from which JAR. Currently, we could just identify within the Tanuki Wrapper log the following single output:
... | ... |
INFO | jvm 1 | | 2014/08/11 16:48:06 | [Loaded oracle.jdbc.driver.ResultSetUtil from file:/opt/wcms/fs/work/ModuleManager/Oracle_JDBC_driver_448bcc0f/lib/ojdbc6.jar] |
... | ... |
We also filtered for "oracle.jdbc.driver" package and just could find a JAR named "ojdbc6.jar" where the classes are taken from. The conclusion: no duplicate JDBC drivers being loaded, currently.
Regarding the change of the driver:
from: ojdbc6.jar, version 11.2.0.1.0
to: ojdbc7.jar, version 12.1.0.2
including a FirstSpirit server restart we observed:
- problem has gone
Although, the Oracle DB server does not match the driver version!