You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Jonathan Coogan <Jo...@Attachmate.com> on 2009/11/12 20:30:44 UTC

instance data cleanup

When I enable instance data cleanup
(http://ode.apache.org/user-guide.html#UserGuide-InstanceDataCleanup) in
Ode 1.3.3 (Tomcat/war distribution), I get NullPointerExceptions on
every execution.  Has anyone else seen this?  Any known workarounds?
 
Deployment Descriptor
---------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:ns1="test:test">
  <process name="ns1:test">
    <active>true</active>
    <process-events generate="all"/>
    <in-memory>false</in-memory>
    <provide partnerLink="client">
      <service name="ns1:testService" port="testPort"/>
    </provide>
    <cleanup on="always" />
  </process>
</deploy>

Console Output
---------------------------------------------------
 
DEBUG - GeronimoLog.debug(66) | ProcessImpl {test:test}test-1 completed
OK.
WARN - GeronimoLog.warn(96) | Unexpected exception from
beforeCompletion; transaction will roll back
 
<openjpa-1.3.0-SNAPSHOT-r422266:724491 fatal general error>
org.apache.openjpa.persistence.Persisten
ceException: This operation failed for some instances.  See the nested
exceptions array for details.
 
        at
org.apache.openjpa.kernel.BrokerImpl.throwNestedExceptions(BrokerImpl.ja
va:2352)
        at
org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2051)
        at
org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1909)
        at
org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1680)
        at
org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:9
89)
        at
org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl
.java:592)
        at
org.apache.ode.dao.jpa.ProcessInstanceDAOImpl.delete(ProcessInstanceDAOI
mpl.java:185)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl$2.beforeCompletion(Bpe
lRuntimeContextIm
pl.java:258)
        at
org.apache.ode.scheduler.simple.SimpleScheduler$2.beforeCompletion(Simpl
eScheduler.java:2
43)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion
(TransactionImpl.
java:514)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion
(TransactionImpl.
java:498)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(Tr
ansactionImpl.jav
a:400)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(Transacti
onImpl.java:257)
        at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(Tr
ansactionManagerI
mpl.java:238)
        at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc
heduler.java:226)
 
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:404)
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:401)
        at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: <openjpa-1.3.0-SNAPSHOT-r422266:724491 nonfatal user error>
org.apache.openjpa.persistenc
e.ArgumentException: Attempt to assign id
"org.apache.ode.dao.jpa.XmlDataDAOImpl-401" to new instanc
e "org.apache.ode.dao.jpa.XmlDataDAOImpl@c2ccac" failed; there is
already an object in the L1 cache
with this id. You must delete this object (in a previous transaction or
the current one) before reus
ing its id.  This error can also occur when a horizontally or vertically
mapped classes uses auto-in
crement application identity and does not use a hierarchy of application
identity classes.
FailedObject: org.apache.ode.dao.jpa.XmlDataDAOImpl@c2ccac
        at
org.apache.openjpa.kernel.ManagedCache.assignObjectId(ManagedCache.java:
193)
        at
org.apache.openjpa.kernel.BrokerImpl.assignObjectId(BrokerImpl.java:4744
)
        at
org.apache.openjpa.kernel.BrokerImpl.setStateManager(BrokerImpl.java:384
3)
        at
org.apache.openjpa.kernel.StateManagerImpl.assertObjectIdAssigned(StateM
anagerImpl.java:5
51)
        at
org.apache.openjpa.kernel.StateManagerImpl.afterFlush(StateManagerImpl.j
ava:997)
        at
org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2034)
        ... 20 more
NestedThrowables:
<openjpa-1.3.0-SNAPSHOT-r422266:724491 nonfatal user error>
org.apache.openjpa.persistence.ArgumentE
xception: Attempt to assign id
"org.apache.ode.dao.jpa.XmlDataDAOImpl-402" to new instance "org.apac
he.ode.dao.jpa.XmlDataDAOImpl@94837a" failed; there is already an object
in the L1 cache with this i
d. You must delete this object (in a previous transaction or the current
one) before reusing its id.
  This error can also occur when a horizontally or vertically mapped
classes uses auto-increment app
lication identity and does not use a hierarchy of application identity
classes.
FailedObject: org.apache.ode.dao.jpa.XmlDataDAOImpl@94837a
        at
org.apache.openjpa.kernel.ManagedCache.assignObjectId(ManagedCache.java:
193)
        at
org.apache.openjpa.kernel.BrokerImpl.assignObjectId(BrokerImpl.java:4744
)
        at
org.apache.openjpa.kernel.BrokerImpl.setStateManager(BrokerImpl.java:384
3)
        at
org.apache.openjpa.kernel.StateManagerImpl.assertObjectIdAssigned(StateM
anagerImpl.java:5
51)
        at
org.apache.openjpa.kernel.StateManagerImpl.afterFlush(StateManagerImpl.j
ava:997)
        at
org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2034)
        at
org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1909)
        at
org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1680)
        at
org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:9
89)
        at
org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl
.java:592)
        at
org.apache.ode.dao.jpa.ProcessInstanceDAOImpl.delete(ProcessInstanceDAOI
mpl.java:185)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl$2.beforeCompletion(Bpe
lRuntimeContextIm
pl.java:258)
        at
org.apache.ode.scheduler.simple.SimpleScheduler$2.beforeCompletion(Simpl
eScheduler.java:2
43)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion
(TransactionImpl.
java:514)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion
(TransactionImpl.
java:498)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(Tr
ansactionImpl.jav
a:400)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(Transacti
onImpl.java:257)
        at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(Tr
ansactionManagerI
mpl.java:238)
        at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc
heduler.java:226)
 
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:404)
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:401)
        at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:908)
        at java.lang.Thread.run(Thread.java:619)
DEBUG - GeronimoLog.debug(66) | Received myrole mex response callback
DEBUG - GeronimoLog.debug(66) | Handling response for MEX
{MyRoleMex#hqejbhcnphr4quprmuef7b [Client
hqejbhcnphr4quprmuef7a] calling {test:test}testService.process(...)}
DEBUG - GeronimoLog.debug(66) | Starting transaction.
ERROR - GeronimoLog.error(108) | Error processing response for MEX
{MyRoleMex#hqejbhcnphr4quprmuef7b
 [Client hqejbhcnphr4quprmuef7a] calling
{test:test}testService.process(...)}
java.lang.NullPointerException: Null operation
        at
org.apache.ode.axis2.util.SoapMessageConverter.createSoapResponse(SoapMe
ssageConverter.ja
va:180)
        at
org.apache.ode.axis2.ODEService.onResponse(ODEService.java:270)
        at
org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:18
9)
        at
org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMes
sageReceiver.java
:69)
        at
org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMes
sageReceiver.java
:52)
        at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessa
geReceiver.java:9
6)
        at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReques
t(HTTPTransportUt
ils.java:275)
        at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.j
ava:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
 
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:102)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2
93)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84
9)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
Http11Protocol.ja
va:583)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
        at java.lang.Thread.run(Thread.java:619)
DEBUG - GeronimoLog.debug(66) | Releasing mex hqejbhcnphr4quprmuef7b
ERROR - GeronimoLog.error(108) | Error while executing transaction
javax.transaction.RollbackException: Unable to commit: transaction
marked for rollback
        at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(Transacti
onImpl.java:271)
        at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(Tr
ansactionManagerI
mpl.java:238)
        at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc
heduler.java:226)
 
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:404)
        at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
ava:401)
        at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:908)
        at java.lang.Thread.run(Thread.java:619)
DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeInternal event
for mexid hqejbhcnphr4quprmuef
7b
DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={mexid=hqejbhcnphr4quprmuef7b,
pid={test:test}test-1, type=INVOKE_INTERNAL})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr4quprmuef7b
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.partnerRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: client.process: MSG RCVD
keys=[] mySessionId=null partnerS
essionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: client.process: routing
failed, CREATING NEW INSTANCE
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for
instance 252. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING
CORRELATOR client.process
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: CHECKING
for NEW INSTANCE match
DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH: Changing process instance
state from ready to active
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: FOUND
match for NEW instance mexRef={
MyRoleMex#hqejbhcnphr4quprmuef7b [Client hqejbhcnphr4quprmuef7a] calling
{test:test}testService.process(...)}
DEBUG - GeronimoLog.debug(66) | Processing an async reply from service
{test:test}testService
DEBUG - GeronimoLog.debug(66) | ProcessImpl {test:test}test-1 completed
OK.
WARN - GeronimoLog.warn(96) | Unexpected exception from
beforeCompletion; transaction will roll back

 
Thanks.
 
-Jon