Hi, This is I think a plain and simple bug.
Here's the Jira I created: https://issues.apache.org/jira/browse/UIMA-3396 I'll do a fix... -Marshall On 10/30/2013 9:11 AM, Eddie Epstein wrote: > Other than reordering the CAS within an annotator via CAS > serialization/deserialization, nothing else comes to mind. So the next idea > would be to pursue a UIMA bug. > > Looking at the exception stack shows the problem is associated with > deleting an FS from the index repository. Code in ruta-core does > cas.addFsToIndexes and cas.removeFsFromIndexes. Perhaps there is a bug in > UIMA delta CAS processing associated with this scenario. Much as I would > like to, > can't think of any way to blade Ruta code for this. > > Eddie > > > On Wed, Oct 30, 2013 at 4:38 AM, Peter Klügl <[email protected]>wrote: > >> On 29.10.2013 17:36, Eddie Epstein wrote: >>> Hi Peter, >>> >>> Things like XmiCasDeserializer.deserialize(new FileInputStream(each), >> cas, >>> true) in RutaInterpreterRunner? >> Ah ok, that shouldn't cause any problems. It's code of the eclipse-based >> tooling and should not be used in a normal pipeline. The problem (if >> ruta causes it) has to be in ruta-core, I think. >> >>> I am only looking for things that would do something unexpected to a >> CAS. I >>> would not be so concerned with the new Ruta annotations as with changes >> to >>> previously existing annotations. >> Are there any known modifications that cause problems? >> >> Peter >> >>> Eddie >>> >>> >>> >>> >>> >>> On Tue, Oct 29, 2013 at 9:39 AM, Peter Klügl <[email protected] >>> wrote: >>> >>>> On 28.10.2013 13:47, Eddie Epstein wrote: >>>>> Assuming you would rather not share the CAS files, what I'd be looking >>>> for >>>>> is the xmi:id values changing between the before and after files. There >>>> is >>>>> some code in ruta that replaces CASes with serialization from files >> which >>>>> could be the cause of this problem. >>>> What code do you mean? >>>> >>>> I have no idea what the problem could be. I would have bet that the >>>> RutaBasic annotation cause the problem, but the problem apparently still >>>> exists if all ruta specific annotations are yet removed in the analysis >>>> engine. >>>> >>>> Peter >>>> >>>>> Eddie >>>>> >>>>> >>>>> On Tue, Oct 22, 2013 at 10:21 AM, Eddie Epstein <[email protected]> >>>> wrote: >>>>>> Can you share the before and after XmiCas files for a case where >> UIMA-AS >>>>>> service serialization failed? No confidential info please! >>>>>> >>>>>> Eddie >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Oct 22, 2013 at 2:27 AM, Prokopis Prokopidis < >> [email protected] >>>>> wrote: >>>>>>> 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) >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>
