You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Patrick T <so...@hotmail.com> on 2008/01/31 20:29:04 UTC

Error when updating an unchanged entity

Hello,

I've been getting the following error when merging an entity:
"org.apache.openjpa.persistence.OptimisticLockException: An optimistic lock
violation was detected when flushing object instance "Visitor-0" to the data
store. This indicates that the object was concurrently modified in another
transaction."

The thing that makes this peculiar is that when the entity is changed, the
merge goes through without a problem, but when there is no change on the
entity, I get the corresponding exception. Does anyone know of a fix or
workaround for this or if its a bug within jpa? Thanks

Patrick
 
The exception is below:
FailedObject: Visitor-0
	at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:160)
	at
com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:80)
	at
com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:67)
	at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
	at
org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
	at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
	at
org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1292)
	at
org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:861)
	at
org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:408)
	at
com.ibm.sms.permissions.entities.controller.VisitorManager.updateVisitor(VisitorManager.java:91)
	at
com.ibm.sms.permissions.servlets.PermissionsServlet.doPost(PermissionsServlet.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:990)
	at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
	at
com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473)
	at
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
	at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
	at
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
	at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
	at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
	at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
	at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263)
	at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
	at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
	at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
	at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
	at
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
	at
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
-- 
View this message in context: http://www.nabble.com/Error-when-updating-an-unchanged-entity-tp15212885p15212885.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Error when updating an unchanged entity

Posted by Patrick T <so...@hotmail.com>.
No, I'm not. I will try that.



Michael Terrington-2 wrote:
> 
> Hi Patrick,
> 
> I don't know if it helps, but I had a similar issue with 
> OptimisticLockException when iterating a result list and found I hadn't 
> enabled the runtime enhancement.  Are you enhancing your classes?
> 
> Regards,
> Michael.
> 
> Patrick T wrote:
>> Hello,
>> 
>> I've been getting the following error when merging an entity:
>> "org.apache.openjpa.persistence.OptimisticLockException: An optimistic
>> lock
>> violation was detected when flushing object instance "Visitor-0" to the
>> data
>> store. This indicates that the object was concurrently modified in
>> another
>> transaction."
>> 
>> The thing that makes this peculiar is that when the entity is changed,
>> the
>> merge goes through without a problem, but when there is no change on the
>> entity, I get the corresponding exception. Does anyone know of a fix or
>> workaround for this or if its a bug within jpa? Thanks
>> 
>> Patrick
>>  
>> The exception is below:
>> FailedObject: Visitor-0
>> 	at
>> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:160)
>> 	at
>> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:80)
>> 	at
>> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:67)
>> 	at
>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
>> 	at
>> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
>> 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
>> 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
>> 	at
>> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
>> 	at
>> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>> 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1292)
>> 	at
>> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:861)
>> 	at
>> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:408)
>> 	at
>> com.ibm.sms.permissions.entities.controller.VisitorManager.updateVisitor(VisitorManager.java:91)
>> 	at
>> com.ibm.sms.permissions.servlets.PermissionsServlet.doPost(PermissionsServlet.java:97)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>> 	at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:990)
>> 	at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
>> 	at
>> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473)
>> 	at
>> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
>> 	at
>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
>> 	at
>> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
>> 	at
>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
>> 	at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
>> 	at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
>> 	at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263)
>> 	at
>> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
>> 	at
>> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
>> 	at
>> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
>> 	at
>> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
>> 	at
>> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
>> 	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
>> 	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
>> 	at
>> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
>> 	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
>> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
> 
> -- 
> Michael Terrington <mi...@sarugo.net>
> Software Development Manager
> Sarugo Pty. Ltd. <http://www.sarugo.net/>
> Level 2, 44 Gawler Place, Adelaide SA
> Office: +61 8 8359 2373
> Mobile: +61 403 201 507
> 
> 

-- 
View this message in context: http://www.nabble.com/Error-when-updating-an-unchanged-entity-tp15212885p15306756.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Error when updating an unchanged entity

Posted by Michael Terrington <mi...@sarugo.net>.
Hi Patrick,

I don't know if it helps, but I had a similar issue with 
OptimisticLockException when iterating a result list and found I hadn't 
enabled the runtime enhancement.  Are you enhancing your classes?

Regards,
Michael.

Patrick T wrote:
> Hello,
> 
> I've been getting the following error when merging an entity:
> "org.apache.openjpa.persistence.OptimisticLockException: An optimistic lock
> violation was detected when flushing object instance "Visitor-0" to the data
> store. This indicates that the object was concurrently modified in another
> transaction."
> 
> The thing that makes this peculiar is that when the entity is changed, the
> merge goes through without a problem, but when there is no change on the
> entity, I get the corresponding exception. Does anyone know of a fix or
> workaround for this or if its a bug within jpa? Thanks
> 
> Patrick
>  
> The exception is below:
> FailedObject: Visitor-0
> 	at
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:160)
> 	at
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:80)
> 	at
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:67)
> 	at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
> 	at
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
> 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
> 	at
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
> 	at
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
> 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1292)
> 	at
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:861)
> 	at
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:408)
> 	at
> com.ibm.sms.permissions.entities.controller.VisitorManager.updateVisitor(VisitorManager.java:91)
> 	at
> com.ibm.sms.permissions.servlets.PermissionsServlet.doPost(PermissionsServlet.java:97)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> 	at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:990)
> 	at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
> 	at
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473)
> 	at
> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
> 	at
> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
> 	at
> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
> 	at
> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
> 	at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
> 	at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
> 	at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263)
> 	at
> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> 	at
> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> 	at
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> 	at
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> 	at
> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> 	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
> 	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
> 	at
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
> 	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)

-- 
Michael Terrington <mi...@sarugo.net>
Software Development Manager
Sarugo Pty. Ltd. <http://www.sarugo.net/>
Level 2, 44 Gawler Place, Adelaide SA
Office: +61 8 8359 2373
Mobile: +61 403 201 507