Is this a primitive (single-threaded) aggregate or async (multi-threaded)? If async, try to simplify and run primitive aggregate with scaleout=1.
The CAS does not seem to be null in this case. The caller of the getSerializedCas() checks for null. The code dies here: Caused by: java.lang.NullPointerException at org.apache.uima.cas.impl.CasSerializerSupport$ CasDocSerializer.getSofaAddr(CasSerializerSupport.java:454) public int getSofaAddr(int sofaNum) { if (sofaNum != 1 || cas.isInitialSofaCreated()) { //skip if initial view && no Sofa yet // all non-initial-views must have a sofa * return ((CASImpl)cas.getView(sofaNum)).getSofaRef();* } return 0; } Looks to me that getView(sofaNum) is returning null. Is it possible that two threads are operating on the same CAS maybe? One removing a view while another trying to serialize. Have no idea what else could it be. -jerry On Fri, Feb 10, 2017 at 8:45 AM, nelson rivera <nelsonriver...@gmail.com> wrote: > Hi, The first thing I did was these tests,i made a simple test case > that create a Cas with 17 views and then serialize using > XmiCasSerializer.serialize(newJCas.getCas(), fis) and serializes > correctly. > Also i made other test, initialize the same AE but of local way with > UIMA API and process the same input documents and the processing is > correct and then serialize the CAS, without problem. > > The error is with AE deployed in uima-as and consuming it. > > 2017-02-09 17:30 GMT-05:00, Marshall Schor <m...@schor.com>: > > one thing that would help track this down is a small isolated test case. > > > > Do you think uima-as is needed? I'm wondering if a simple test case which > > generated 17 views and then tried to serialize would show the failure... > > > > If you could supply a small test case that showed the failure so we could > > reproduce it, that would enable a rapid resolution. > > > > -Marshall > > > > > > On 2/9/2017 3:58 PM, Marshall Schor wrote: > >> The line throwing the null pointer exception is : > >> > >> cas.getView(sofaNum).getSofaRef() > >> > >> So the NPE is either the cas is null, or the getView(sofaNum) is > returning > >> null. > >> > >> I'm not sure what the best way is to debug this... > >> > >> -Marshall > >> > >> > >> > >> > >> On 2/9/2017 12:42 PM, nelson rivera wrote: > >>> I have a aggregate service uima-as, at the end of aggregate the cas to > >>> return is composed of as many views as the number of input files, each > >>> view with annotations of processing. > >>> With a number of input documents less than 15 the processing is > >>> successful always, > >>> but if the number of documents is greater than 15, i get a > >>> NullPointerException at the aggregate service trying to serialize the > >>> cas, not in the processing of AE aggregate. > >>> the logs of aggregate service: > >>> > >>> 11:51:38.815 - 42: > >>> cu.datys.xinetica.uima.core.MergerInViewCasMultipler.hasNext(285): > >>> INFO: HasNext false > >>> 11:51:38.875 - 44: > >>> org.apache.uima.uimacpp.UimacppAnalysisComponent.log(396): INFO: : > >>> XClusterAnalyzer::process --- OK > >>> 11:51:39.145 - 45: > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.replyToClient: > >>> WARNING: Service: XClusterAnalyzerAggregate Runtime Exception > >>> 11:51:39.145 - 45: > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.replyToClient: > >>> WARNING: > >>> org.apache.uima.aae.error.AsynchAEException: > >>> org.apache.uima.UIMARuntimeException > >>> at > >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel. > getSerializedCas(JmsOutputChannel.java:1265) > >>> at > >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel. > sendReply(JmsOutputChannel.java:800) > >>> at > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl. > sendReplyToRemoteClient(AggregateAnalysisEngineController_impl.java:2173) > >>> at > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.replyToClient(AggregateAnalysisEngineController_impl.java:2342) > >>> at > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.finalStep(AggregateAnalysisEngineController_impl.java:1862) > >>> at > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.executeFlowStep(AggregateAnalysisEngineController_impl.java:2489) > >>> at > >>> org.apache.uima.aae.controller.AggregateAnalysisEngineControl > ler_impl.process(AggregateAnalysisEngineController_impl.java:1271) > >>> at > >>> org.apache.uima.aae.handler.HandlerBase.invokeProcess( > HandlerBase.java:118) > >>> at > >>> org.apache.uima.aae.handler.input.ProcessResponseHandler. > cancelTimerAndProcess(ProcessResponseHandler.java:117) > >>> at > >>> org.apache.uima.aae.handler.input.ProcessResponseHandler. > handleProcessResponseWithCASReference(ProcessResponseHandler.java:485) > >>> at > >>> org.apache.uima.aae.handler.input.ProcessResponseHandler. > handle(ProcessResponseHandler.java:767) > >>> at > >>> org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149) > >>> at > >>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle( > ProcessRequestHandler_impl.java:1113) > >>> at > >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage( > UimaVmMessageListener.java:107) > >>> at > >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageDispatcher$1.run( > UimaVmMessageDispatcher.java:70) > >>> 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:132) > >>> at java.lang.Thread.run(Thread.java:745) > >>> Caused by: org.apache.uima.UIMARuntimeException > >>> at > >>> org.apache.uima.cas.impl.XmiCasSerializer.serialize( > XmiCasSerializer.java:420) > >>> at > >>> org.apache.uima.cas.impl.XmiCasSerializer.serialize( > XmiCasSerializer.java:385) > >>> at > >>> org.apache.uima.aae.UimaSerializer.serializeCasToXmi( > UimaSerializer.java:145) > >>> at > >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel. > serializeCAS(JmsOutputChannel.java:251) > >>> at > >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel. > getSerializedCas(JmsOutputChannel.java:1250) > >>> ... 18 more > >>> Caused by: java.lang.NullPointerException > >>> at > >>> org.apache.uima.cas.impl.CasSerializerSupport$ > CasDocSerializer.getSofaAddr(CasSerializerSupport.java:454) > >>> at > >>> org.apache.uima.cas.impl.CasSerializerSupport$CasDocSerializer. > writeViewsCommons(CasSerializerSupport.java:465) > >>> at > >>> org.apache.uima.cas.impl.XmiCasSerializer$XmiDocSerializer.writeViews( > XmiCasSerializer.java:572) > >>> at > >>> org.apache.uima.cas.impl.CasSerializerSupport$ > CasDocSerializer.serialize(CasSerializerSupport.java:441) > >>> at > >>> org.apache.uima.cas.impl.XmiCasSerializer.serialize( > XmiCasSerializer.java:415) > >>> ... 22 more > >>> > >> > > > > >