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

Reply via email to