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