Kim, I have run into this on several occasions and it is a terribly frustrating bug to track down. If you look closely at the stack trace, the exception is coming from rollback, so the real question for me was "Why am I in a rollback in the first place?". I found that in org.exolab.castor.jdo.SQLEngine.load() there are SQLExceptions that are swallowed. I put printStackTraces in there to determine what the real exception was and then went at it from there. In most cases, the error ultimately ended up being with my mapping.
Best of luck! Margaret -----Original Message----- From: Quinn, Kim John [mailto:[EMAIL PROTECTED]] Sent: Friday, May 31, 2002 11:34 AM To: [EMAIL PROTECTED] Subject: [castor-dev] Question: IllegalStateException...Cant Hold ReadLock? Got a question... We have been developing against MS-SQL7 for quite sometime without any issues in CRUD operations against the database....now, we are migrating to Oracle 8i our test case and when trying to request an object that has been inserted from Castor we get the following exception: Our currect access mode is: shared and our userid on Oracle has "locking" privs set... -------------------------------------------------------------------------- [ERROR,Default] java.lang.IllegalStateException: Transaction org.exolab.castor.jdo.engine.Transactio nContextImpl@ebc11d does not hold the read lock: com.ecog.appl.global.widgets.dao.loan.LoanDAO/104/0 -/-! [ERROR,Default] at org.exolab.castor.persist.LockEngine$TypeInfo.assure(LockEngine.java:1178 ) [ERROR,Default] at org.exolab.castor.persist.LockEngine$TypeInfo.access$3(LockEngine.java:11 70) [ERROR,Default] at org.exolab.castor.persist.LockEngine.revertObject(LockEngine.java:859) [ERROR,Default] at org.exolab.castor.persist.TransactionContext.rollback(TransactionContext. java:1623) [ERROR,Default] at org.exolab.castor.jdo.engine.DatabaseImpl.rollback(DatabaseImpl.java:523) [ERROR,Default] at com.ecog.elf.ext.castor.CastorDataManagerImpl.rollbackTransaction(CastorD ataManagerImpl.java:275) [ERROR,Default] at com.ecog.elf.app.biz.egb.GenericEntityPK.request(GenericEntityPK.java:165 ) [ERROR,Default] at com.ecog.elf.app.biz.egb.GenericEntityBean.ejbLoad(GenericEntityBean.java :264) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) [ERROR,Default] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:25) [ERROR,Default] at java.lang.reflect.Method.invoke(Method.java:324) [ERROR,Default] at org.jboss.ejb.plugins.BMPPersistenceManager.loadEntity(BMPPersistenceMana ger.java:324) [ERROR,Default] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynch ronizationInterceptor.java:287) [ERROR,Default] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInte rceptor.java:197) [ERROR,Default] at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor. java:125) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:1 38) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorC MT.java:347) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100) [ERROR,Default] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java :127) [ERROR,Default] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170) [ERROR,Default] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:428) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContain erInvoker.java:410) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContain erInvoker.java:491) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(Generi cProxy.java:335) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.interfaces.EntityProxy.invoke(EntityProxy.java :133) [ERROR,Default] at $Proxy7.toDatum(Unknown Source) [ERROR,Default] at com.ecog.appl.global.widgets.biz.LoadEGBByPK.toWriter(LoadEGBByPK.java:75 ) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) [ERROR,Default] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:25) [ERROR,Default] at java.lang.reflect.Method.invoke(Method.java:324) [ERROR,Default] at com.ecog.elf.app.cmd.CommandObject.setResult(CommandObject.java:149) [ERROR,Default] at com.ecog.appl.global.widgets.biz.LoadEGBByPK.doIt(LoadEGBByPK.java:55) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.executeCommand(SimpleInterpreter.j ava:81) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.executeLine(SimpleInterpreter.java :154) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.doIt(SimpleInterpreter.java:58) [ERROR,Default] at com.ecog.elf.etc.bag.ActionBag.invokeScript(ActionBag.java:57) [ERROR,Default] at com.ecog.appl.global.widgets.web.RequestHTTPStream.doIt(RequestHTTPStream .java:28) [ERROR,Default] at com.ecog.elf.web.servlet.HTTPServletObject.service(HTTPServletObject.java :76) [ERROR,Default] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) [ERROR,Default] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat ionFilterChain.java:247) [ERROR,Default] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte rChain.java:193) [ERROR,Default] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve .java:243) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve .java:201) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.jav a:246) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344 ) [ERROR,Default] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 164) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVal ve.java:170) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 170) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j ava:163) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.ja va:1011) [ERROR,Default] at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1 106) [ERROR,Default] at java.lang.Thread.run(Thread.java:536) [ERROR,Default] java.lang.IllegalStateException: Transaction org.exolab.castor.jdo.engine.Transactio nContextImpl@ebc11d does not hold the read lock: com.ecog.appl.global.widgets.dao.loan.loanper.LoanP ersonDAO/8/1 -/-! [ERROR,Default] at org.exolab.castor.persist.LockEngine$TypeInfo.assure(LockEngine.java:1178 ) [ERROR,Default] at org.exolab.castor.persist.LockEngine$TypeInfo.access$3(LockEngine.java:11 70) [ERROR,Default] at org.exolab.castor.persist.LockEngine.revertObject(LockEngine.java:859) [ERROR,Default] at org.exolab.castor.persist.TransactionContext.rollback(TransactionContext. java:1623) [ERROR,Default] at org.exolab.castor.jdo.engine.DatabaseImpl.rollback(DatabaseImpl.java:523) [ERROR,Default] at com.ecog.elf.ext.castor.CastorDataManagerImpl.rollbackTransaction(CastorD ataManagerImpl.java:275) [ERROR,Default] at com.ecog.elf.app.biz.egb.GenericEntityPK.request(GenericEntityPK.java:165 ) [ERROR,Default] at com.ecog.elf.app.biz.egb.GenericEntityBean.ejbLoad(GenericEntityBean.java :264) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) [ERROR,Default] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:25) [ERROR,Default] at java.lang.reflect.Method.invoke(Method.java:324) [ERROR,Default] at org.jboss.ejb.plugins.BMPPersistenceManager.loadEntity(BMPPersistenceMana ger.java:324) [ERROR,Default] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynch ronizationInterceptor.java:287) [ERROR,Default] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInte rceptor.java:197) [ERROR,Default] at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor. java:125) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:1 38) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorC MT.java:347) [ERROR,Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100) [ERROR,Default] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java :127) [ERROR,Default] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170) [ERROR,Default] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:428) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContain erInvoker.java:410) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContain erInvoker.java:491) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(Generi cProxy.java:335) [ERROR,Default] at org.jboss.ejb.plugins.jrmp.interfaces.EntityProxy.invoke(EntityProxy.java :133) [ERROR,Default] at $Proxy7.toDatum(Unknown Source) [ERROR,Default] at com.ecog.appl.global.widgets.biz.LoadEGBByPK.toWriter(LoadEGBByPK.java:75 ) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR,Default] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) [ERROR,Default] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:25) [ERROR,Default] at java.lang.reflect.Method.invoke(Method.java:324) [ERROR,Default] at com.ecog.elf.app.cmd.CommandObject.setResult(CommandObject.java:149) [ERROR,Default] at com.ecog.appl.global.widgets.biz.LoadEGBByPK.doIt(LoadEGBByPK.java:55) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.executeCommand(SimpleInterpreter.j ava:81) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.executeLine(SimpleInterpreter.java :154) [ERROR,Default] at com.ecog.elf.app.cmd.SimpleInterpreter.doIt(SimpleInterpreter.java:58) [ERROR,Default] at com.ecog.elf.etc.bag.ActionBag.invokeScript(ActionBag.java:57) [ERROR,Default] at com.ecog.appl.global.widgets.web.RequestHTTPStream.doIt(RequestHTTPStream .java:28) [ERROR,Default] at com.ecog.elf.web.servlet.HTTPServletObject.service(HTTPServletObject.java :76) [ERROR,Default] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) [ERROR,Default] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat ionFilterChain.java:247) [ERROR,Default] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte rChain.java:193) [ERROR,Default] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve .java:243) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve .java:201) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.jav a:246) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344 ) [ERROR,Default] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 164) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVal ve.java:170) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 170) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:564) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j ava:163) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.jav a:566) [ERROR,Default] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:47 2) [ERROR,Default] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) [ERROR,Default] at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.ja va:1011) [ERROR,Default] at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1 106) [ERROR,Default] at java.lang.Thread.run(Thread.java:536) -------------------------------------------------------------------------- Our cases are: 1) When requesting a "dummy" record that already existed in the DB, inserted by the DBA we can see it. 2) Creating a record, then Updating it is fine (same session) 3) Requesting a record the DBA put in and updating is fine. 4) Closing everything down and coming back into Castor, trying to re-request a record that was created before (through castor) does not work - this is our problem. In all of these cases, we have a parallel JDBC test that shows the proper results. And from JDBC we can insert a record, close down the connection, come back in and re-request the record with no problems. Any help or insight into this would be greatly appreciated... Thanks. KJQ [EMAIL PROTECTED] ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev
