I have an Assembler where i'm notifying another assembler of changes
using DataServiceTransaction.getCurrentDataServiceTransaction();

It works with FDS 2.0.1, however when I install LCDS 2.5, I get the
error below (code is following the stacktrace):

11:37:15,625 INFO  [STDOUT] [Flex] [ERROR] [DataService.Transaction]
Error while committing transaction: java.lang.RuntimeException:Internal
error - current transaction changed out from underneath the
DataServiceTransaction! stack=java.lang.RuntimeException: Internal error
- current transaction changed out from underneath the
DataServiceTransaction!
     at
flex.data.DataServiceTransaction.clearCurrentTransaction(DataServiceTran\
saction.java:1779)
     at
flex.data.DataServiceTransaction.doCommit(DataServiceTransaction.java:89\
3)
     at
flex.data.DataServiceTransaction.commit(DataServiceTransaction.java:348)
     at flex.data.DataService.serviceMessage(DataService.java:405)
     at
flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:99\
1)
     at
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoin\
t.java:333)
     at
flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFil\
ter.java:111)
     at
flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
     at
flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:48)
     at
flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilte\
r.java:67)
     at
flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFil\
ter.java:123)
     at
flex.messaging.endpoints.AMFEndpoint.service(AMFEndpoint.java:106)
     at
flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:40\
0)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica\
tionFilterChain.java:252)
     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt\
erChain.java:173)
     at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte\
r.java:96)
     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica\
tionFilterChain.java:202)
     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt\
erChain.java:173)
     at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv\
e.java:213)
     at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv\
e.java:178)
     at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs\
sociationValve.java:175)
     at flex.messaging.security.TomcatValve.invoke(TomcatValve.java:143)
     at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator\
Base.java:432)
     at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j\
ava:74)
     at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java\
:126)
     at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java\
:105)
     at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:\
392)
     at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.\
java:107)
     at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1\
48)
     at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:86\
9)
     at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc\
essConnection(Http11BaseProtocol.java:664)
     at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint\
.java:527)
     at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker\
Thread.java:112)
     at java.lang.Thread.run(Thread.java:595)


-----------------------------------------------------------------------
VObject vo = (VObject) myObject.toValueObject();

DataServiceTransaction txn =
DataServiceTransaction.getCurrentDataServiceTransaction();
                if (txn == null) //this is coming through as not null..
                     txn = DataServiceTransaction.begin(true);

                 String voAss = "my-other-assembler-destination";
                 vo.status = DEDAppVO.Status.LOCKED.value;
                 vo.statusMsg = msg;
                 txn.updateItem(voAss, vo, null, null);
                 txn.commit();



Reply via email to