You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Daniel Hasler (JIRA)" <ji...@apache.org> on 2010/03/01 14:55:05 UTC
[jira] Created: (JCR-2523) StaleItemStateException during
distributed transaction
StaleItemStateException during distributed transaction
------------------------------------------------------
Key: JCR-2523
URL: https://issues.apache.org/jira/browse/JCR-2523
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core, jackrabbit-jca
Affects Versions: 2.0.0
Environment: weblogic 10.3, jdk1.6.0_05, linux
Reporter: Daniel Hasler
We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
Stack-Trace:
javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
javax.transaction.xa.XAException
at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Marcel Reutegger (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12872142#action_12872142 ]
Marcel Reutegger commented on JCR-2523:
---------------------------------------
> Is this the correct and intended behaviour?
yes, this is intended behaviour.
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0, 2.1.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
> Attachments: JCRRepository.java, UpdateTestServlet.java
>
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Daniel Hasler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840866#action_12840866 ]
Daniel Hasler commented on JCR-2523:
------------------------------------
Hi Dominique
thanks for your reply.
I had a look at the XATests. Those tests do not cover my use-case. To reproduce my error, I need at least two XAResources participating in the XA Transaction.
I will anyhow try to create a test (which involves extending the simplistic UserTransactionImpl) by adding another Derby DB as the second XAResource.
But this will take some time and maybe does not sufficiently reflect my setup with the Weblogic Server and the MySQL database as the second XAResource (with LLR XA support from WLS).
In the meantime I had a closer look at the code starting at line 650 of the SharedItemStateManager (Rev. 918623):
The code iterates over the list of modifiedStates of the local ChangeLog.
Whenever the code encounters a stale ItemState that relates to a Node, it tries to merge that node.
If the ItemState is stale and it's not related to a node, the code will always throw a StaleItemStateException.
Is this the correct and intended behaviour?
As you mentioned in your comment, stale PropertyStates are never merged. But by browsing through the code, I get the impression, that it's perfectly possible that the list of modified states contains a PropertyState... which in our case leads to the erroneous StaleItemStateException.
Thanks for investigating further.
Kind Regards,
Dani
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
> Attachments: JCRRepository.java, UpdateTestServlet.java
>
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840571#action_12840571 ]
Dominique Pfister commented on JCR-2523:
----------------------------------------
Hi Daniel,
JCR-1554 was fixed in trunk as well as in 1.5.3, so I don't see what code you're referring to. Stale property values are never merged, so this looks like some code is updating the property concurrently with the code committing your transaction. There is a JUnit test class named
org.apache.jackrabbit.core.XATest
containing tests that apply to XA environment, using simplistic UserTransactions. Are you able to add a test method that reproduces your problem? This would help a lot investigating your issue!
Kind regards
Dominique
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
> Attachments: JCRRepository.java, UpdateTestServlet.java
>
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Daniel Hasler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Hasler updated JCR-2523:
-------------------------------
Attachment: JCRRepository.java
UpdateTestServlet.java
Sample code that helps reproduce the error.
The Source File contains a servlet that runs in a application server and is therfore able to create a user transaction.
Within that user transaction, we use two XA Resources: The Jackrabbit JCA Adapter and a MySQL Database for which we emulate two-phase commit.
The overall behaviour is somewhat strange:
First deploy the Servlet with the update statement active. No call the servlet once and the call will succeed.
Upon subsequent calls to the servlet with the insert statement removed, the error will show up.
Maybe this is because only after the first call Jackrabbit uses a SharedItemStateManager?
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
> Attachments: JCRRepository.java, UpdateTestServlet.java
>
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Daniel Hasler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840334#action_12840334 ]
Daniel Hasler commented on JCR-2523:
------------------------------------
I did some further debugging that revealed the following:
During update, the shared item state manager iterates over the modified states of the local ChangeLog.
If the modified item is a node, he merges the node states.
Obviously, the list of modified items may as well contain PropertyState objects. The isNode() method for a PropertyState object always returns false.
Assumption: I don't yet know jackrabbit well enough and cannot definitely say wether a PropertyState needs merging or not. If not, the fix is simple:
If the ItemState object does not relate to a node, we need not check if the merge was successful and safely can set the default of the merged flag to true.
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-2523) StaleItemStateException during
distributed transaction
Posted by "Daniel Hasler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Hasler updated JCR-2523:
-------------------------------
Affects Version/s: 2.1.0
> StaleItemStateException during distributed transaction
> ------------------------------------------------------
>
> Key: JCR-2523
> URL: https://issues.apache.org/jira/browse/JCR-2523
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, jackrabbit-jca
> Affects Versions: 2.0.0, 2.1.0
> Environment: weblogic 10.3, jdk1.6.0_05, linux
> Reporter: Daniel Hasler
> Attachments: JCRRepository.java, UpdateTestServlet.java
>
>
> We use the Jackrabbit JCA Component within a Weblogic 10.3 Application Server with distributed transactions between an Oracle Database an the Jackrabbit JCA.
> Updating a node property multiple times in a transaction results in a XAException. Root cause seems to be a StaleItemStateException (see Stack-Trace).
> Googling revealed, that a similar bug was fixed for Jackrabbit 1.5.3. Looking through the code showed, that the proposed fix in JCR-1554 seems not to be applied on Jackrabbit 2.0 (tag and trunk).
> I tried to apply the proposed fix on the trunk code base, but this seemed not to help.
> Stack-Trace:
> javax.ejb.TransactionRolledbackLocalException: Error committing transaction:; nested exception is: javax.transaction.xa.XAException
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:238)
> at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:133)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> javax.transaction.xa.XAException
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:171)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.TransactionException: Unable to prepare transaction.
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:169)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> org.apache.jackrabbit.core.state.StaleItemStateException: e1863ec3-4eb7-483b-b1db-7586c089bc64/{}To has been modified externally
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:653)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1110)
> at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> at org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:346)
> at org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
> at weblogic.connector.security.layer.AdapterLayer.commit(AdapterLayer.java:252)
> at weblogic.connector.transaction.outbound.XAWrapper.commit(XAWrapper.java:113)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1334)
> at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:578)
> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:547)
> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:2006)
> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2723)
> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2645)
> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:282)
> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:591)
> at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)
> at ch.ejpd.sireneit.facade.ejb.ablage.DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.updateStructuredDokument(DokumentFacadeBean_7xdnsq_DokumentFacadeImpl.java:340)
> at ch.ejpd.sireneit.access.rest.ablage.DokumentResource.update(DokumentResource.java:453)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
> at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
> at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:109)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
> at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
> at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:689)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:680)
> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:324)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:604)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at ch.ejpd.lib.webclient.jfa.JfaTokenServletFilter.doFilter(JfaTokenServletFilter.java:108)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Unknown Source)
> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> >
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.