Re: Possible cause of nullPointerException in casmultiplier?
You are absolutely right, I should not release the input CAS in my AE. This was apparently the cause of the error. thank you very much 2016-11-28 13:09 GMT-05:00, Jaroslaw Cwiklik: > An input CAS should not be released in the AE (user code). The Flow > Controller should be used > to prevent a CAS from flowing downstream. UIMA-AS will try to release a CAS > in a Final Step > of processing and this may cause an error like > > "The system tried to return a common analysis structure to the pool from > which it was not checked out." > > Jerry > > > On Mon, Nov 28, 2016 at 12:40 PM, nelson rivera > wrote: > >> I have deployed the aggregate of asynchronous way. >> And i configure this aggregate to processing one request at the same >> time(numberOfCASes=1,default), because as i commented on previous >> email, in my flow: The first casmultiplier receive a annotation with >> the path of a folder and creates a new child cas for each file in the >> folder, the child cas >> continue the flow in the other primitive annotators and at the end it >> go to the second casmultipler, in the second casmultipler can or not >> create new child cas, in the case of not i release the cas. I am >> assuming (numberOfCASes=1,default) that until all child has finished >> its processing, the aggregate not going processing other input cas of >> other request, it is correct?. >> >> >> >> 2016-11-28 12:00 GMT-05:00, Jaroslaw Cwiklik : >> > Nelson, this error: >> > >> > "The system tried to return a common analysis structure to the pool >> > from >> > which it was not checked out." >> > >> > I think this is caused if you try to release a CAS that has been >> previously >> > released. Sure you >> > are not trying to release it twice? I think releasing an input CAS in >> > AE >> > code is not a good idea. I am assuming >> > you have an asynchronous aggregate (queue in front of each AE). In such >> > deployments, the UIMA-AS is >> > responsible for releasing a CAS once it reaches a Final state. Within a >> > synchronous aggregate I am not sure >> > if you are allowed to release a CAS in your code. Perhaps others can >> chime >> > in. Can you confirm which >> > deployment you chose for this aggregate (synch or asynch) >> > Jerry >> > >> > On Fri, Nov 25, 2016 at 11:14 AM, nelson rivera < >> nelsonriver...@gmail.com> >> > wrote: >> > >> >> The errores related are very random. I found a patron of error ( don't >> >> know if it's the only one): The caspool of the first casmultipler >> >> have size of 8, if i send a request to the aggregate in which the >> >> first casmultipler have to generate more than 8 child cas, i get >> >> random errors, the childs cas generated after the number 8, sometimes >> >> is empty, sometimes have less annotations than it should have (I see >> >> this with a own XCasSerializer annotator) or get nullPointerException. >> >> I don't know why can happen, because in the method "process()" of the >> >> second casmultipler i release the incoming cas (aJCas.release();) >> >> directly in my source code, for that the caspool of the first >> >> casmultipler will not empty. There is something taht i am not doing >> >> well? >> >> >> >> I don't have idea what may be going on?, i will appreciate the help >> >> >> >> 2016-11-24 19:24 GMT-05:00, nelson rivera : >> >> > I continued investigating and according to the stacktrace and >> >> > source >> >> > code of of FSIndexRepositoryImpl.ll_addFS_common() the exception is >> >> > from line 2805 , in this part >> >> > >> >> > final ArrayList >> >> > indexes = this.indexArray[typeCode]; >> >> > // Add fsRef to all indexes. >> >> > boolean noIndexOrOnlySetindexes = true; >> >> > for (IndexIteratorCachePair iicp : >> >> > indexes) {} //here >> >> > >> >> > apparently loop on a null value, any idea of why can happen this >> >> exception? >> >> > >> >> > 2016-11-24 16:27 GMT-05:00, nelson rivera >> >> > : >> >> >> the error continue ocurring , this is the log, my casmultiplier is >> >> >> FileSystemMultiplerCas >> >> >> >> >> >> 04:04:17.520 - 23: >> >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: >> >> >> Adicionando annotation tipo >> >> >> cu.datys.xinetica.uima.ContinueOnFailure >> >> >> 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: >> >> >> WARNING: >> >> >> The system tried to return a common analysis structure to the pool >> >> >> from which it was not checked out. >> >> >> 04:04:17.523 - 23: >> >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. >> >> callAnalysisComponentNext(549): >> >> >> SEVERE: Exception occurred >> >> >> org.apache.uima.analysis_engine.AnalysisEngineProcessException >> >> >> at >> >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next( >> >> FileSystemMultiplerCas.java:351) >> >> >> at >> >> >>
Re: Possible cause of nullPointerException in casmultiplier?
An input CAS should not be released in the AE (user code). The Flow Controller should be used to prevent a CAS from flowing downstream. UIMA-AS will try to release a CAS in a Final Step of processing and this may cause an error like "The system tried to return a common analysis structure to the pool from which it was not checked out." Jerry On Mon, Nov 28, 2016 at 12:40 PM, nelson riverawrote: > I have deployed the aggregate of asynchronous way. > And i configure this aggregate to processing one request at the same > time(numberOfCASes=1,default), because as i commented on previous > email, in my flow: The first casmultiplier receive a annotation with > the path of a folder and creates a new child cas for each file in the > folder, the child cas > continue the flow in the other primitive annotators and at the end it > go to the second casmultipler, in the second casmultipler can or not > create new child cas, in the case of not i release the cas. I am > assuming (numberOfCASes=1,default) that until all child has finished > its processing, the aggregate not going processing other input cas of > other request, it is correct?. > > > > 2016-11-28 12:00 GMT-05:00, Jaroslaw Cwiklik : > > Nelson, this error: > > > > "The system tried to return a common analysis structure to the pool from > > which it was not checked out." > > > > I think this is caused if you try to release a CAS that has been > previously > > released. Sure you > > are not trying to release it twice? I think releasing an input CAS in AE > > code is not a good idea. I am assuming > > you have an asynchronous aggregate (queue in front of each AE). In such > > deployments, the UIMA-AS is > > responsible for releasing a CAS once it reaches a Final state. Within a > > synchronous aggregate I am not sure > > if you are allowed to release a CAS in your code. Perhaps others can > chime > > in. Can you confirm which > > deployment you chose for this aggregate (synch or asynch) > > Jerry > > > > On Fri, Nov 25, 2016 at 11:14 AM, nelson rivera < > nelsonriver...@gmail.com> > > wrote: > > > >> The errores related are very random. I found a patron of error ( don't > >> know if it's the only one): The caspool of the first casmultipler > >> have size of 8, if i send a request to the aggregate in which the > >> first casmultipler have to generate more than 8 child cas, i get > >> random errors, the childs cas generated after the number 8, sometimes > >> is empty, sometimes have less annotations than it should have (I see > >> this with a own XCasSerializer annotator) or get nullPointerException. > >> I don't know why can happen, because in the method "process()" of the > >> second casmultipler i release the incoming cas (aJCas.release();) > >> directly in my source code, for that the caspool of the first > >> casmultipler will not empty. There is something taht i am not doing > >> well? > >> > >> I don't have idea what may be going on?, i will appreciate the help > >> > >> 2016-11-24 19:24 GMT-05:00, nelson rivera : > >> > I continued investigating and according to the stacktrace and source > >> > code of of FSIndexRepositoryImpl.ll_addFS_common() the exception is > >> > from line 2805 , in this part > >> > > >> > final ArrayList > >> > indexes = this.indexArray[typeCode]; > >> > // Add fsRef to all indexes. > >> > boolean noIndexOrOnlySetindexes = true; > >> > for (IndexIteratorCachePair iicp : > >> > indexes) {} //here > >> > > >> > apparently loop on a null value, any idea of why can happen this > >> exception? > >> > > >> > 2016-11-24 16:27 GMT-05:00, nelson rivera : > >> >> the error continue ocurring , this is the log, my casmultiplier is > >> >> FileSystemMultiplerCas > >> >> > >> >> 04:04:17.520 - 23: > >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: > >> >> Adicionando annotation tipo cu.datys.xinetica.uima.ContinueOnFailure > >> >> 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: WARNING: > >> >> The system tried to return a common analysis structure to the pool > >> >> from which it was not checked out. > >> >> 04:04:17.523 - 23: > >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. > >> callAnalysisComponentNext(549): > >> >> SEVERE: Exception occurred > >> >> org.apache.uima.analysis_engine.AnalysisEngineProcessException > >> >> at > >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next( > >> FileSystemMultiplerCas.java:351) > >> >> at > >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. > >> callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:526) > >> >> at > >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$ > >> AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_ > impl.java:647) > >> >> at > >> >> org.apache.uima.aae.controller.PrimitiveAnalysisEngineControl >
Re: Possible cause of nullPointerException in casmultiplier?
I have deployed the aggregate of asynchronous way. And i configure this aggregate to processing one request at the same time(numberOfCASes=1,default), because as i commented on previous email, in my flow: The first casmultiplier receive a annotation with the path of a folder and creates a new child cas for each file in the folder, the child cas continue the flow in the other primitive annotators and at the end it go to the second casmultipler, in the second casmultipler can or not create new child cas, in the case of not i release the cas. I am assuming (numberOfCASes=1,default) that until all child has finished its processing, the aggregate not going processing other input cas of other request, it is correct?. 2016-11-28 12:00 GMT-05:00, Jaroslaw Cwiklik: > Nelson, this error: > > "The system tried to return a common analysis structure to the pool from > which it was not checked out." > > I think this is caused if you try to release a CAS that has been previously > released. Sure you > are not trying to release it twice? I think releasing an input CAS in AE > code is not a good idea. I am assuming > you have an asynchronous aggregate (queue in front of each AE). In such > deployments, the UIMA-AS is > responsible for releasing a CAS once it reaches a Final state. Within a > synchronous aggregate I am not sure > if you are allowed to release a CAS in your code. Perhaps others can chime > in. Can you confirm which > deployment you chose for this aggregate (synch or asynch) > Jerry > > On Fri, Nov 25, 2016 at 11:14 AM, nelson rivera > wrote: > >> The errores related are very random. I found a patron of error ( don't >> know if it's the only one): The caspool of the first casmultipler >> have size of 8, if i send a request to the aggregate in which the >> first casmultipler have to generate more than 8 child cas, i get >> random errors, the childs cas generated after the number 8, sometimes >> is empty, sometimes have less annotations than it should have (I see >> this with a own XCasSerializer annotator) or get nullPointerException. >> I don't know why can happen, because in the method "process()" of the >> second casmultipler i release the incoming cas (aJCas.release();) >> directly in my source code, for that the caspool of the first >> casmultipler will not empty. There is something taht i am not doing >> well? >> >> I don't have idea what may be going on?, i will appreciate the help >> >> 2016-11-24 19:24 GMT-05:00, nelson rivera : >> > I continued investigating and according to the stacktrace and source >> > code of of FSIndexRepositoryImpl.ll_addFS_common() the exception is >> > from line 2805 , in this part >> > >> > final ArrayList >> > indexes = this.indexArray[typeCode]; >> > // Add fsRef to all indexes. >> > boolean noIndexOrOnlySetindexes = true; >> > for (IndexIteratorCachePair iicp : >> > indexes) {} //here >> > >> > apparently loop on a null value, any idea of why can happen this >> exception? >> > >> > 2016-11-24 16:27 GMT-05:00, nelson rivera : >> >> the error continue ocurring , this is the log, my casmultiplier is >> >> FileSystemMultiplerCas >> >> >> >> 04:04:17.520 - 23: >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: >> >> Adicionando annotation tipo cu.datys.xinetica.uima.ContinueOnFailure >> >> 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: WARNING: >> >> The system tried to return a common analysis structure to the pool >> >> from which it was not checked out. >> >> 04:04:17.523 - 23: >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. >> callAnalysisComponentNext(549): >> >> SEVERE: Exception occurred >> >> org.apache.uima.analysis_engine.AnalysisEngineProcessException >> >> at >> >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next( >> FileSystemMultiplerCas.java:351) >> >> at >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. >> callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:526) >> >> at >> >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$ >> AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:647) >> >> at >> >> org.apache.uima.aae.controller.PrimitiveAnalysisEngineControl >> ler_impl.process(PrimitiveAnalysisEngineController_impl.java:860) >> >> at >> >> org.apache.uima.aae.handler.HandlerBase.invokeProcess( >> HandlerBase.java:121) >> >> at >> >> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl. >> handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:795) >> >> at >> >> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle( >> ProcessRequestHandler_impl.java:1055) >> >> at >> >> org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage( >> UimaVmMessageListener.java:107) >> >> at >> >>
Re: Possible cause of nullPointerException in casmultiplier?
Nelson, this error: "The system tried to return a common analysis structure to the pool from which it was not checked out." I think this is caused if you try to release a CAS that has been previously released. Sure you are not trying to release it twice? I think releasing an input CAS in AE code is not a good idea. I am assuming you have an asynchronous aggregate (queue in front of each AE). In such deployments, the UIMA-AS is responsible for releasing a CAS once it reaches a Final state. Within a synchronous aggregate I am not sure if you are allowed to release a CAS in your code. Perhaps others can chime in. Can you confirm which deployment you chose for this aggregate (synch or asynch) Jerry On Fri, Nov 25, 2016 at 11:14 AM, nelson riverawrote: > The errores related are very random. I found a patron of error ( don't > know if it's the only one): The caspool of the first casmultipler > have size of 8, if i send a request to the aggregate in which the > first casmultipler have to generate more than 8 child cas, i get > random errors, the childs cas generated after the number 8, sometimes > is empty, sometimes have less annotations than it should have (I see > this with a own XCasSerializer annotator) or get nullPointerException. > I don't know why can happen, because in the method "process()" of the > second casmultipler i release the incoming cas (aJCas.release();) > directly in my source code, for that the caspool of the first > casmultipler will not empty. There is something taht i am not doing > well? > > I don't have idea what may be going on?, i will appreciate the help > > 2016-11-24 19:24 GMT-05:00, nelson rivera : > > I continued investigating and according to the stacktrace and source > > code of of FSIndexRepositoryImpl.ll_addFS_common() the exception is > > from line 2805 , in this part > > > > final ArrayList > > indexes = this.indexArray[typeCode]; > > // Add fsRef to all indexes. > > boolean noIndexOrOnlySetindexes = true; > > for (IndexIteratorCachePair iicp : > > indexes) {} //here > > > > apparently loop on a null value, any idea of why can happen this > exception? > > > > 2016-11-24 16:27 GMT-05:00, nelson rivera : > >> the error continue ocurring , this is the log, my casmultiplier is > >> FileSystemMultiplerCas > >> > >> 04:04:17.520 - 23: > >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: > >> Adicionando annotation tipo cu.datys.xinetica.uima.ContinueOnFailure > >> 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: WARNING: > >> The system tried to return a common analysis structure to the pool > >> from which it was not checked out. > >> 04:04:17.523 - 23: > >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. > callAnalysisComponentNext(549): > >> SEVERE: Exception occurred > >> org.apache.uima.analysis_engine.AnalysisEngineProcessException > >> at > >> cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next( > FileSystemMultiplerCas.java:351) > >> at > >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl. > callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:526) > >> at > >> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$ > AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:647) > >> at > >> org.apache.uima.aae.controller.PrimitiveAnalysisEngineControl > ler_impl.process(PrimitiveAnalysisEngineController_impl.java:860) > >> at > >> org.apache.uima.aae.handler.HandlerBase.invokeProcess( > HandlerBase.java:121) > >> at > >> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl. > handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:795) > >> at > >> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle( > ProcessRequestHandler_impl.java:1055) > >> 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: java.lang.NullPointerException > >> at > >> org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_addFS_common( > FSIndexRepositoryImpl.java:2805) > >> at > >> org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_ > addFS(FSIndexRepositoryImpl.java:2763) > >> at > >> org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS( > FSIndexRepositoryImpl.java:2068) > >> at > >> org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS( >
Re: Possible cause of nullPointerException in casmultiplier?
I continued investigating and according to the stacktrace and source code of of FSIndexRepositoryImpl.ll_addFS_common() the exception is from line 2805 , in this part final ArrayListindexes = this.indexArray[typeCode]; // Add fsRef to all indexes. boolean noIndexOrOnlySetindexes = true; for (IndexIteratorCachePair iicp : indexes) {} //here apparently loop on a null value, any idea of why can happen this exception? 2016-11-24 16:27 GMT-05:00, nelson rivera : > the error continue ocurring , this is the log, my casmultiplier is > FileSystemMultiplerCas > > 04:04:17.520 - 23: > cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: > Adicionando annotation tipo cu.datys.xinetica.uima.ContinueOnFailure > 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: WARNING: > The system tried to return a common analysis structure to the pool > from which it was not checked out. > 04:04:17.523 - 23: > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(549): > SEVERE: Exception occurred > org.apache.uima.analysis_engine.AnalysisEngineProcessException > at > cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(FileSystemMultiplerCas.java:351) > at > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:526) > at > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:647) > at > org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:860) > at > org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121) > at > org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:795) > at > org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:1055) > 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: java.lang.NullPointerException > at > org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_addFS_common(FSIndexRepositoryImpl.java:2805) > at > org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_addFS(FSIndexRepositoryImpl.java:2763) > at > org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS(FSIndexRepositoryImpl.java:2068) > at > org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS(FSIndexRepositoryImpl.java:2674) > at org.apache.uima.cas.impl.CASImpl.addFsToIndexes(CASImpl.java:5023) > at org.apache.uima.jcas.impl.JCasImpl.addFsToIndexes(JCasImpl.java:1525) > at > cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(FileSystemMultiplerCas.java:337) > > > 2016-11-23 16:14 GMT-05:00, nelson rivera : >> I have a aggregate service that contains in the flow in this order : 1 >> casmultiplier, then 2 primitive annotators and at the end other >> casmultiplier. >> The first casmultiplier receive a annotation with the path of a folder >> and creates a new child cas for each file in the folder, the child cas >> continue the flow in the other primitive annotators and at the end it >> go to the second casmultipler, in the second casmultipler can or not >> create new child cas, in the case of not, in the method process() i >> release de cas (aJCas.release();) directly in my source code. >> >> This aggregate service is deploys in uima-as and configure for >> processing only one request at the same time > numberOfCASes="1"/>. For any reason, sometimes and of aleatorie way , >> making many requests to the service from many thread concurrent, in >> the first casmultiplier in method next() after get the new cas (JCas >> jcas = getEmptyJCas()) and while populate the cas , apparently some >> external component in another parallel thread modifys this obtained >> cas, and i get a NullPointerException adding a annotation >> (jcas.addFsToIndexes(copyOfFs);) in method next(). >> >> Any idea of what may be going on? >> >> this is the descriptor uima-as: >> >> >> >> > xmlns="http://uima.apache.org/resourceSpecifier;> >> >> XPlagiarismCheckerAggregateAE Deploy Descriptor >> Deploys XPlagiarismCheckerAggregateAE >> >> >> >> > brokerURL="${defaultBrokerURL}"/> >> >> >> >> >
Re: Possible cause of nullPointerException in casmultiplier?
the error continue ocurring , this is the log, my casmultiplier is FileSystemMultiplerCas 04:04:17.520 - 23: cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(334): INFO: Adicionando annotation tipo cu.datys.xinetica.uima.ContinueOnFailure 04:04:17.522 - 23: org.apache.uima.util.CasPool.releaseCas: WARNING: The system tried to return a common analysis structure to the pool from which it was not checked out. 04:04:17.523 - 23: org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(549): SEVERE: Exception occurred org.apache.uima.analysis_engine.AnalysisEngineProcessException at cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(FileSystemMultiplerCas.java:351) at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:526) at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:647) at org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:860) at org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121) at org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:795) at org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:1055) 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: java.lang.NullPointerException at org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_addFS_common(FSIndexRepositoryImpl.java:2805) at org.apache.uima.cas.impl.FSIndexRepositoryImpl.ll_addFS(FSIndexRepositoryImpl.java:2763) at org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS(FSIndexRepositoryImpl.java:2068) at org.apache.uima.cas.impl.FSIndexRepositoryImpl.addFS(FSIndexRepositoryImpl.java:2674) at org.apache.uima.cas.impl.CASImpl.addFsToIndexes(CASImpl.java:5023) at org.apache.uima.jcas.impl.JCasImpl.addFsToIndexes(JCasImpl.java:1525) at cu.datys.xinetica.uima.core.FileSystemMultiplerCas.next(FileSystemMultiplerCas.java:337) 2016-11-23 16:14 GMT-05:00, nelson rivera: > I have a aggregate service that contains in the flow in this order : 1 > casmultiplier, then 2 primitive annotators and at the end other > casmultiplier. > The first casmultiplier receive a annotation with the path of a folder > and creates a new child cas for each file in the folder, the child cas > continue the flow in the other primitive annotators and at the end it > go to the second casmultipler, in the second casmultipler can or not > create new child cas, in the case of not, in the method process() i > release de cas (aJCas.release();) directly in my source code. > > This aggregate service is deploys in uima-as and configure for > processing only one request at the same time numberOfCASes="1"/>. For any reason, sometimes and of aleatorie way , > making many requests to the service from many thread concurrent, in > the first casmultiplier in method next() after get the new cas (JCas > jcas = getEmptyJCas()) and while populate the cas , apparently some > external component in another parallel thread modifys this obtained > cas, and i get a NullPointerException adding a annotation > (jcas.addFsToIndexes(copyOfFs);) in method next(). > > Any idea of what may be going on? > > this is the descriptor uima-as: > > > > xmlns="http://uima.apache.org/resourceSpecifier;> > > XPlagiarismCheckerAggregateAE Deploy Descriptor > Deploys XPlagiarismCheckerAggregateAE > > > > brokerURL="${defaultBrokerURL}"/> > > > > internalReplyQueueScaleout="3"> > > > > > > > > continueOnRetryFailure="true"/> > > > > > > continueOnRetryFailure="true"/> > > > > > >
Possible cause of nullPointerException in casmultiplier?
I have a aggregate service that contains in the flow in this order : 1 casmultiplier, then 2 primitive annotators and at the end other casmultiplier. The first casmultiplier receive a annotation with the path of a folder and creates a new child cas for each file in the folder, the child cas continue the flow in the other primitive annotators and at the end it go to the second casmultipler, in the second casmultipler can or not create new child cas, in the case of not, in the method process() i release de cas (aJCas.release();) directly in my source code. This aggregate service is deploys in uima-as and configure for processing only one request at the same time . For any reason, sometimes and of aleatorie way , making many requests to the service from many thread concurrent, in the first casmultiplier in method next() after get the new cas (JCas jcas = getEmptyJCas()) and while populate the cas , apparently some external component in another parallel thread modifys this obtained cas, and i get a NullPointerException adding a annotation (jcas.addFsToIndexes(copyOfFs);) in method next(). Any idea of what may be going on? this is the descriptor uima-as: http://uima.apache.org/resourceSpecifier;> XPlagiarismCheckerAggregateAE Deploy Descriptor Deploys XPlagiarismCheckerAggregateAE