Skip to Content
0
Former Member
Nov 06, 2007 at 10:22 AM

ModificationNotAllowedException during confirmations

25 Views

Hello,

I have a problem with our MAM. I 've just started with SAP 2 months ago, so my apologies for my ignorance.

We are using a customized MAM in our company. They customized the MAM to adapt to our business needs and to let engineers work with it on their laptop (we changed the layout a bit). We have hundreds of users worldwide using the MAM. The current version of the SP is SP19P3. The basic version of the MAM is 2.5 I think (we have our own versioning system for our customized MAM, but I believe we are using MAM 2.5 as 'core' version).

What happens is the following:

We have 1 user with a bad-working MAM. When installing his MAM and after synchronizing, everything seems to be OK at first sight. But when trying to confirm something it goes wrong. The user can 't in fact confirm anything (no materials, no working-hours, ...). He gets the following error:

<i>e= ModificationNotAllowedException (id=258)

cause= ModificationNotAllowedException (id=258)

detailMessage= "The data is inconsistent please reset the client data to ensure consistency"</i>

When debugging for instance a material confirmation everything seems to go well, untill we come in the write method of class Mam006Impl. When executing the following code, the ModificationNotAllowedException occurs:

row.setFieldValue(getFieldDescriptor("MATERIAL"), material);

When I replace this code with:

row.modifyFieldValue(getFieldDescriptor("MATERIAL"), material);

It goes well, until I do:

row.getSyncBo().insertRow(row);

So I guess it has something to do when trying to write into the local DB?!...

I can 't debug deeper because I don 't have the source-code of the other files.

This is what I can see in the trace log file:

<i>[20071105 15:38:23:549] E [Unknown ] Mobile Asset Management Error begin:

[20071105 15:38:23:549] E [Unknown ] 100 : Runtime Error - order - com.ibm.acc.mam.order.control.MaterialsReporting - onSelect

[20071105 15:38:23:549] E [Unknown ] com.sap.mbs.core.api.BOException: Failed inserting Mam006: com.sap.mbs.core.api.BOException: Failed writing to Row: com.sap.ip.me.api.smartsync.ModificationNotAllowedException: The data is inconsistent please reset the client data to ensure consistency

com.sap.mbs.core.api.BOException: Failed inserting Mam006: com.sap.mbs.core.api.BOException: Failed writing to Row: com.sap.ip.me.api.smartsync.ModificationNotAllowedException: The data is inconsistent please reset the client data to ensure consistency

at com.sap.mbs.mam.bo.impl.Mam006ManagerImpl.insertMam006(Mam006ManagerImpl.java:227)

at com.ibm.acc.mam.order.control.MaterialsReporting.createMatConfirmation(MaterialsReporting.java:921)

at com.ibm.acc.mam.order.control.MaterialsReporting.onSave(MaterialsReporting.java:369)

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:324)

at com.sap.mbs.core.control.AbstractViewController.process(Unknown Source)

at com.sap.mbs.core.control.DefaultStateMachine.process(Unknown Source)

at com.sap.mbs.core.web.FrontServlet.doHandleEvent(Unknown Source)

at com.sap.mbs.mam.application.web.FrontServlet.doHandleEvent(FrontServlet.java:280)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:347)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:313)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Thread.java:534)

com.sap.mbs.core.api.BOException: Failed writing to Row: com.sap.ip.me.api.smartsync.ModificationNotAllowedException: The data is inconsistent please reset the client data to ensure consistency

at com.sap.mbs.mam.bo.impl.Mam006Impl.write(Mam006Impl.java:1707)

at com.sap.mbs.mam.bo.impl.Mam006ManagerImpl.insertMam006(Mam006ManagerImpl.java:220)

at com.ibm.acc.mam.order.control.MaterialsReporting.createMatConfirmation(MaterialsReporting.java:921)

at com.ibm.acc.mam.order.control.MaterialsReporting.onSave(MaterialsReporting.java:369)

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:324)

at com.sap.mbs.core.control.AbstractViewController.process(Unknown Source)

at com.sap.mbs.core.control.DefaultStateMachine.process(Unknown Source)

at com.sap.mbs.core.web.FrontServlet.doHandleEvent(Unknown Source)

at com.sap.mbs.mam.application.web.FrontServlet.doHandleEvent(FrontServlet.java:280)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:347)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:313)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Thread.java:534)

com.sap.ip.me.api.smartsync.ModificationNotAllowedException: The data is inconsistent please reset the client data to ensure consistency

at com.sap.ip.me.smartsync.data.AbstractRow.setFieldValue(AbstractRow.java:124)

at com.sap.mbs.mam.bo.impl.Mam006Impl.write(Mam006Impl.java:1492)

at com.sap.mbs.mam.bo.impl.Mam006ManagerImpl.insertMam006(Mam006ManagerImpl.java:220)

at com.ibm.acc.mam.order.control.MaterialsReporting.createMatConfirmation(MaterialsReporting.java:921)

at com.ibm.acc.mam.order.control.MaterialsReporting.onSave(MaterialsReporting.java:369)

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:324)

at com.sap.mbs.core.control.AbstractViewController.process(Unknown Source)

at com.sap.mbs.core.control.DefaultStateMachine.process(Unknown Source)

at com.sap.mbs.core.web.FrontServlet.doHandleEvent(Unknown Source)

at com.sap.mbs.mam.application.web.FrontServlet.doHandleEvent(FrontServlet.java:280)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:347)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:313)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Thread.java:534)

[20071105 15:38:23:549] E [Unknown ] Mobile Asset Management Error end.</i>

I also did try a reset. When reseting the MAM and synchronising I first get an incomplete message, when synchronising again (and sometimes again...) it goes finally through the synchronising process. I asked some of the SAP guys here whether there are errors in SAP and we checked, but they can 't see anything abnormal at the SAP middelware side. However I noticed some errors in the MAM's trace log file:

<i>[20071031 15:53:17:603] E [MI/Smartsync ] Inbound processing of container with index 1423 failed: Illegal character /*/ at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

java.lang.IllegalArgumentException: Illegal character /'*/' at position 0

at com.sap.ip.me.persist.fileio.spi.AttributeTypeExt$AttributeTypeBigDecimal.verifyBigDecimal(AttributeTypeExt.java:177)

at com.sap.ip.me.persist.fileio.spi.AttributeTypeExt$AttributeTypeBigDecimal.toByte(AttributeTypeExt.java:208)

at com.sap.ip.me.persist.fileio.spi.AttributeDescriptorImpl.toByte(AttributeDescriptorImpl.java:299)

at com.sap.ip.me.persist.fileio.spi.PersistenceWriterImpl.set(PersistenceWriterImpl.java:179)

at com.sap.ip.me.smartsync.syncIn.processors.InternalRowProcessor.setNextFieldWithWriter(InternalRowProcessor.java:142)

at com.sap.ip.me.smartsync.syncIn.processors.RowProcessorManager$RowProcessorDispatcher.setNextField(RowProcessorManager.java:428)

at com.sap.ip.me.smartsync.syncIn.SaxSyncInProcessor$4.characters(SaxSyncInProcessor.java:753)

at com.sap.ip.me.xmlParser.MIXMLEventHandlerManager.characters(MIXMLEventHandlerManager.java:72)

at com.sap.ip.me.xmlParser.MIXMLParser.sendCharacters(MIXMLParser.java:376)

at com.sap.ip.me.xmlParser.MIXMLParser.parse(MIXMLParser.java:207)

at com.sap.ip.me.smartsync.syncIn.SaxSyncInProcessor.processSyncInMessage(SaxSyncInProcessor.java:89)

at com.sap.ip.me.smartsync.syncIn.SyncInRuntimeImpl.processSyncInMessage(SyncInRuntimeImpl.java:260)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:347)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:279)

at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)

at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:175)

at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:169)

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:836)

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1278)

at com.sap.ip.me.sync.SyncManagerImpl.doRepetitiveSynchronization(SyncManagerImpl.java:1116)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:470)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:319)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:641)

at java.lang.Thread.run(Unknown Source)

[20071031 15:53:17:603] E [MI/Smartsync ] java.lang.RuntimeException: Inbound processing of container with index 1423 failed: Illegal character /'*/' at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

java.lang.RuntimeException: Inbound processing of container with index 1423 failed: Illegal character /'*/' at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

at com.sap.ip.me.smartsync.syncIn.SyncInRuntimeImpl.processSyncInMessage(SyncInRuntimeImpl.java:305)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:347)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:279)

at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)

at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:175)

at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:169)

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:836)

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1278)

at com.sap.ip.me.sync.SyncManagerImpl.doRepetitiveSynchronization(SyncManagerImpl.java:1116)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:470)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:319)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:641)

at java.lang.Thread.run(Unknown Source)

[20071031 15:53:17:603] E [MI/Smartsync ] Error while Smart Sync inbound processing. Reset Smart Sync data on device to ensure consitency with middleware. Contact SAP Support and provide the following detailed information: Inbound processing of container with index 1423 failed: Illegal character /*/ at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

java.lang.RuntimeException: Inbound processing of container with index 1423 failed: Illegal character /'*/' at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:354)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:279)

at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)

at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:175)

at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:169)

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:836)

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1278)

at com.sap.ip.me.sync.SyncManagerImpl.doRepetitiveSynchronization(SyncManagerImpl.java:1116)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:470)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:319)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:641)

at java.lang.Thread.run(Unknown Source)

[20071031 15:53:17:603] E [AppLog/MI/Smartsync ] Error while Smart Sync inbound processing. Reset Smart Sync data on device to ensure consitency with middleware. Contact SAP Support and provide the following detailed information: Inbound processing of container with index 1423 failed: Illegal character /*/ at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

java.lang.RuntimeException: Inbound processing of container with index 1423 failed: Illegal character /'*/' at position 0 : <InboundProcessingError timestamp="2007-10-31-16-53-17"><RowProcessorDispatcherDump type="nonObservable" ><Action>a</Action><TopRowKey>0076733995</TopRowKey><ChildRowKey> </ChildRowKey><RequestId> </RequestId><StateID> </StateID></RowProcessorDispatcherDump></InboundProcessingError>

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:354)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:279)

at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)

at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:175)

at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:169)

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:836)

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1278)

at com.sap.ip.me.sync.SyncManagerImpl.doRepetitiveSynchronization(SyncManagerImpl.java:1116)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:470)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:319)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:641)

at java.lang.Thread.run(Unknown Source)

[20071031 15:53:17:603] E [AppLog/MI/Sync ] Exception while processing inbound container 4728E08B90ED01AA000000000A19038E

java.lang.RuntimeException: RESET

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:387)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:279)

at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)

at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:175)

at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:169)

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:836)

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1278)

at com.sap.ip.me.sync.SyncManagerImpl.doRepetitiveSynchronization(SyncManagerImpl.java:1116)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:470)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:319)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:641)

at java.lang.Thread.run(Unknown Source)</i>

Can someone help me with this one? I don 't know what I can do more to trace the problem...

Thanks a lot!

Best regards,

Diederik