No, this is not an easily reproduced error: I have noticed it so far only upon application of typesystem-specific ruta rules. I will try to come up with an easily reproducible example.

In the meantime, I followed your suggestions and added 2 XMI serialization calls at the end of the AE processing for the failing case, just before and just after using the ruta rules for modifying the annotations in my CAS. In both cases, serialization to file succeeded, with the second file containing the expected results of rule application.

Unfortunately, the UIMA-AS serialization still produces the error in my original mail.

Prokopis

On 10/18/2013 07:09 PM, Eddie Epstein wrote:
Is this a solid error that is easily reproduced?

The error is occurring when UIMA-AS is returning the CAS from the service.
You could add XMI serialization to file at the end of AE processing, for
the good and failing cases. If so lucky to have that serialization fail
too, could try inserting the serialization at points earlier.

Note that the UIMA-AS serialization is only serializing the delta changes
from the input CAS, different from what you would do.

Eddie



On Thu, Oct 17, 2013 at 12:19 PM, Prokopis Prokopidis <[email protected]>wrote:

Hi all,

I have an AE that produces the error below when deployed as a UIMA-AS
2.4.0 service. The same AE as part of a UIMA 2.4.2 CPE or a uimafit 2.*
pipeline does not produce any errors and works as expected.

Among other things, this AE uses ruta rules to process the CAS. When the
rules are not used,  the AE works as expected in both UIMA and UIMA-AS.

I have tried to log all annotations generated by the AE when the rules are
used and just before the AE processing is finished. The annotations seem
the same in both the UIMA and the UIMA-AS processing scenarios.

Does anyone have hints on what the cause of this might be or how I should
proceed in debugging?

Many thanks in advance,

Prokopis

WARNING:
java.lang.**ArrayIndexOutOfBoundsException
         at org.apache.uima.internal.util.**IntVector.remove(IntVector.**
java:207)
         at org.apache.uima.internal.util.**IntSet.remove(IntSet.java:77)
         at org.apache.uima.cas.impl.**FSIndexRepositoryImpl.**
processIndexUpdates(**FSIndexRepositoryImpl.java:**1756)
         at org.apache.uima.cas.impl.**FSIndexRepositoryImpl.**isModified(*
*FSIndexRepositoryImpl.java:**1800)
         at org.apache.uima.cas.impl.**XmiCasSerializer$**
XmiCasDocSerializer.serialize(**XmiCasSerializer.java:256)
         at org.apache.uima.cas.impl.**XmiCasSerializer$**
XmiCasDocSerializer.access$**700(XmiCasSerializer.java:108)
         at org.apache.uima.cas.impl.**XmiCasSerializer.serialize(**
XmiCasSerializer.java:1566)
         at org.apache.uima.aae.**UimaSerializer.**serializeCasToXmi(**
UimaSerializer.java:160)
         at org.apache.uima.adapter.jms.**activemq.JmsOutputChannel.**
serializeCAS(JmsOutputChannel.**java:237)
         at org.apache.uima.adapter.jms.**activemq.JmsOutputChannel.**
getSerializedCas(**JmsOutputChannel.java:1223)
         at org.apache.uima.adapter.jms.**activemq.JmsOutputChannel.**
sendReply(JmsOutputChannel.**java:786)
         at org.apache.uima.aae.**controller.**
PrimitiveAnalysisEngineControl**ler_impl.process(**
PrimitiveAnalysisEngineControl**ler_impl.java:1036)
         at org.apache.uima.aae.handler.**HandlerBase.invokeProcess(**
HandlerBase.java:121)
         at org.apache.uima.aae.handler.**input.ProcessRequestHandler_**
impl.**handleProcessRequestFromRemote**Client(ProcessRequestHandler_**
impl.java:542)
         at org.apache.uima.aae.handler.**input.ProcessRequestHandler_**
impl.handle(**ProcessRequestHandler_impl.**java:1041)
         at org.apache.uima.aae.handler.**input.MetadataRequestHandler_**
impl.handle(**MetadataRequestHandler_impl.**java:78)
         at org.apache.uima.adapter.jms.**activemq.JmsInputChannel.**
onMessage(JmsInputChannel.**java:706)
         at org.springframework.jms.**listener.**
AbstractMessageListenerContain**er.doInvokeListener(**
AbstractMessageListenerContain**er.java:535)
         at org.springframework.jms.**listener.**
AbstractMessageListenerContain**er.invokeListener(**
AbstractMessageListenerContain**er.java:495)
         at org.springframework.jms.**listener.**
AbstractMessageListenerContain**er.doExecuteListener(**
AbstractMessageListenerContain**er.java:467)
         at org.springframework.jms.**listener.**
AbstractPollingMessageListener**Container.doReceiveAndExecute(**
AbstractPollingMessageListener**Container.java:325)
         at org.springframework.jms.**listener.**
AbstractPollingMessageListener**Container.receiveAndExecute(**
AbstractPollingMessageListener**Container.java:263)
         at org.springframework.jms.**listener.**
DefaultMessageListenerContaine**r$AsyncMessageListenerInvoker.**
invokeListener(**DefaultMessageListenerContaine**r.java:1058)
         at org.springframework.jms.**listener.**
DefaultMessageListenerContaine**r$AsyncMessageListenerInvoker.**run(**
DefaultMessageListenerContaine**r.java:952)
         at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
ThreadPoolExecutor.java:1145)
         at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
ThreadPoolExecutor.java:615)
         at org.apache.uima.aae.**UimaAsThreadFactory$1.run(**
UimaAsThreadFactory.java:118)
         at java.lang.Thread.run(Thread.**java:724)





Reply via email to