Иногда я получаю сообщение об ошибке (не каждый раз), когда пытаюсь выполнить маршаллинг.Но когда я перезагружаюсь пару раз, я получаю желаемый результат.Однако исключение не является согласованным.
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -8
at com.sun.xml.bind.v2.util.CollisionCheckStack.findDuplicate(CollisionCheckStack.java:133)
at com.sun.xml.bind.v2.util.CollisionCheckStack.push(CollisionCheckStack.java:71)
at com.sun.xml.bind.v2.runtime.XMLSerializer.pushObject(XMLSerializer.java:494)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:609)
at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:29)
at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:132)
at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:101)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:286)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:571)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:276)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:472)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:301)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:128)
at com.parker.techm.mdmcs.aagsync.WriteToAAGQueue.sendResponse(WriteToAAGQueue.java:84)
at com.parker.techm.mdmcs.workflows.ModifyPartWfl.out(ModifyPartWfl.java:1111)
at com.ibm.ccd.api.extensionpoints.WorkflowStepFunctionArgumentsImpl.run(WorkflowStepFunctionArgumentsImpl.java:94)
at com.ibm.ccd.api.extensionpoints.AbstractUserFunctionInvoker._run(AbstractUserFunctionInvoker.java:178)
at com.ibm.ccd.common.interpreter.engine.dynamic.GenericCompiledScriptAdaptor.run(GenericCompiledScriptAdaptor.java:180)
at com.ibm.ccd.common.interpreter.engine.Script.runFunction(Script.java:539)
at com.ibm.ccd.workflow.common.events.AbstractWorkflowEvent.runScriptFunction(AbstractWorkflowEvent.java:624)
at com.ibm.ccd.workflow.common.events.EndStepEvent.runOutOrTimeoutScript(EndStepEvent.java:838)
at com.ibm.ccd.workflow.common.events.EndStepEvent.runStepScript(EndStepEvent.java:982)
at com.ibm.ccd.workflow.common.events.AbstractWorkflowEvent.runStepScriptInTX(AbstractWorkflowEvent.java:2019)
at com.ibm.ccd.workflow.common.events.AbstractWorkflowEvent.processFullEventWithTransactions(AbstractWorkflowEvent.java:1965)
at com.ibm.ccd.workflow.common.WorkflowRunnable.processWorkflowEventDbRecord(WorkflowRunnable.java:164)
at com.ibm.ccd.workflow.common.WorkflowRunnable.run(WorkflowRunnable.java:94)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:732)
at java.lang.Thread.run(Thread.java:809)
Прикрепив сюда фрагмент кода,
String response = "";
StringWriter xmlMessage = new StringWriter();
JAXBContext jaxContext = JAXBContext.newInstance(PIMPart.class);
Marshaller marshallerObj = jaxContext.createMarshaller();
marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
***marshallerObj.marshal(part, xmlMessage);*** //Exception is thrown here
response = xmlMessage.toString();
- Примечание: этот код работает на IBM MDM CE v11.6 (AIX 7)[JARs - jaxb-impl-2.1.jar / jaxb-api-2.2.11.jar]
Любая помощь по этому вопросу будет принята с благодарностью.