uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marshall Schor <...@schor.com>
Subject Re: CAS Pool
Date Fri, 10 Feb 2017 19:14:04 GMT
Hi Shahid,

Thanks for replying.  I'm still not seeing the part of the stack trace that
happens *after* the line saying"Caused by: java.lang.NullPointerException"

That would identify (assuming that you can find it) where exactly in the code
the NullPointerException occurred. 
The stack traces you supplied just show the wrappers wrapping this, and are not
helpful to understand where the Null Pointer Exception itself occurred.

I'm hoping there are some stack trace lines you can share *following* the
NullPointerException message.

-Marshall

On 2/10/2017 12:17 PM, shahid ashraf wrote:
> Hi
>
> The Full stack trace is below, it only happens when there are more then one
> thread:
>
> Feb 10, 2017 8:44:06 PM
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl
> callAnalysisComponentProcess(430)
>
> SEVERE: Exception occurred
>
> org.apache.uima.analysis_engine.AnalysisEngineProcessException
>
> at org.apache.ctakes.lvg.ae.LvgAnnotator.process(LvgAnnotator.java:310)
>
> at
> org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48)
>
> at
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:396)
>
> at
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:314)
>
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570)
>
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412)
>
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344)
>
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:265)
>
> at
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:269)
>
> at
> org.apache.uima.analysis_engine.impl.MultiprocessingAnalysisEngine_impl.process(MultiprocessingAnalysisEngine_impl.java:199)
>
> at
> org.apache.ctakes.web.client.servlet.DemoServlet.doPost(DemoServlet.java:135)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>
> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
>
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
>
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
>
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
>
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
>
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
>
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>
> at org.eclipse.jetty.server.Server.handle(Server.java:370)
>
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
>
> at
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
>
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
>
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
>
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
>
> at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
>
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
>
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
>
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>
> at java.lang.Thread.run(Thread.java:745)
>
> Caused by: org.apache.uima.analysis_engine.AnalysisEngineProcessException
>
> at
> org.apache.ctakes.lvg.ae.LvgAnnotator.setCanonicalForm(LvgAnnotator.java:372)
>
> at
> org.apache.ctakes.lvg.ae.LvgAnnotator.annotateRange(LvgAnnotator.java:342)
>
> at org.apache.ctakes.lvg.ae.LvgAnnotator.process(LvgAnnotator.java:307)
>
> ... 35 more
> Caused by: java.lang.NullPointerException
>
>
> On Fri, Feb 10, 2017 at 10:22 PM, Marshall Schor <msa@schor.com> wrote:
>
>> Hi,
>>
>> This exception is being thrown from CTakes, I think.  UIMA is "wrapping"
>> this
>> exception, and even CTakes is wrapping it.
>>
>> Can you post the full stack trace?  I'm looking for the lines that would
>> follow
>> something like:
>> "Caused by: java.lang.NullPointerException" which would indicate the
>> actual
>> cause, I hope.
>>
>> Also, this is just a wild guess, but could you check to be sure you've set
>> up
>> the CAS for CTakes to process according to what it requires (I'm not
>> familiar
>> with CTakes requirements)?
>>
>> -Marshall
>>
>>
>> On 2/10/2017 11:09 AM, shahid ashraf wrote:
>>> Anything on the previous mail and
>>>
>>> *Also i tried the setting up  Cas Pool based on descriptor file using
>> below
>>> code... when i increase the number of threads from 1 i get following
>> errors*
>>> public class MyApplication {
>>>   private CasPool mCasPool;
>>>
>>>   private AnalysisEngine mAnalysisEngine;
>>>
>>>   public MyApplication()
>>>   {
>>>     //get Resource Specifier from XML file
>>>     XMLInputSource in = new XMLInputSource("MyDescriptor.xml");
>>>     ResourceSpecifier specifier =
>>>       UIMAFramework.getXMLParser().parseResourceSpecifier(in);
>>>
>>>     //Create multithreadable AE that will
>>>     //Accept 3 simultaneous requests
>>>     //The 3rd parameter specifies a timeout.
>>>     //When the number of simultaneous requests exceeds 3,
>>>     // additional requests will wait for other requests to finish.
>>>     // This parameter determines the maximum number of milliseconds
>>>     // that a new request should wait before throwing an
>>>     // - a value of 0 will cause them to wait forever.
>>>     mAnalysisEngine = UIMAFramework.produceAnalysisEngine(
>> specifier,3,0);
>>>     //create CAS pool with 3 CAS instances
>>>     mCasPool = new CasPool(3, mAnalysisEngine);
>>>   }
>>>
>>>   // Notice this is no longer "synchronized"
>>>   public void analyzeDocument(String aDoc) {
>>>     //check out a CAS instance (argument 0 means no timeout)
>>>     CAS cas = mCasPool.getCas(0);
>>>     try {
>>>       //analyze a document
>>>       cas.setDocumentText(aDoc);
>>>       mAnalysisEngine.process(cas);
>>>       doSomethingWithResults(cas);
>>>     } finally {
>>>       //MAKE SURE we release the CAS instance
>>>       mCasPool.releaseCas(cas);
>>>     }
>>>   }
>>>   ...
>>> }
>>>
>>> eb 10, 2017 8:44:06 PM
>>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl
>>> callAnalysisComponentProcess(430)
>>>
>>> SEVERE: Exception occurred
>>>
>>> org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>>
>>>       at org.apache.ctakes.lvg.ae.LvgAnnotator.process(
>> LvgAnnotator.java:310)
>>>       at org.apache.uima.analysis_component.JCasAnnotator_
>> ImplBase.process(JCasAnnotator_ImplBase.java:48)
>>>       at org.apache.uima.analysis_engine.impl.
>> PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(
>> PrimitiveAnalysisEngine_impl.java:396)
>>>       at org.apache.uima.analysis_engine.impl.
>> PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(
>> PrimitiveAnalysisEngine_impl.java:314)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl$
>> AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl$
>> AggregateCasIterator.<init>(ASB_impl.java:412)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl.
>> process(ASB_impl.java:344)
>>>       at org.apache.uima.analysis_engine.impl.
>> AggregateAnalysisEngine_impl.processAndOutputNewCASes(
>> AggregateAnalysisEngine_impl.java:265)aused
>>> by: org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>>
>>> at
>>> org.apache.ctakes.lvg.ae.LvgAnnotator.setCanonicalForm(
>> LvgAnnotator.java:372)
>>> at
>>> org.apache.ctakes.lvg.ae.LvgAnnotator.annotateRange(
>> LvgAnnotator.java:342)
>>> at org.apache.ctakes.lvg.ae.LvgAnnotator.process(LvgAnnotator.java:307)
>>>
>>> ... 35 more
>>> Caused by: java.lang.NullPointerException
>>>
>>> Feb 10, 2017 8:44:06 PM
>>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl
>>> processAndOutputNewCASes(273)
>>>
>>> SEVERE: Exception occurred
>>>
>>> org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>>
>>>       at org.apache.ctakes.lvg.ae.LvgAnnotator.process(
>> LvgAnnotator.java:310)
>>>       at org.apache.uima.analysis_component.JCasAnnotator_
>> ImplBase.process(JCasAnnotator_ImplBase.java:48)
>>>       at org.apache.uima.analysis_engine.impl.
>> PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(
>> PrimitiveAnalysisEngine_impl.java:396)
>>>       at org.apache.uima.analysis_engine.impl.
>> PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(
>> PrimitiveAnalysisEngine_impl.java:314)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl$
>> AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl$
>> AggregateCasIterator.<init>(ASB_impl.java:412)
>>>       at org.apache.uima.analysis_engine.asb.impl.ASB_impl.
>> process(ASB_impl.java:344)
>>>       at org.apache.uima.analysis_engine.impl.
>> AggregateAnalysisEngine_impl.processAndOutputNewCASes(
>> AggregateAnalysisEngine_impl.java:265)
>>>       at
>>>
>>>
>>>
>>> On Fri, Feb 10, 2017 at 12:12 AM, shahid ashraf <shahid@trialx.com>
>> wrote:
>>>> Hi Folks
>>>>
>>>> This is my first mail to the mailing list. I have just started looking
>>>> into the uima architecture. Currently i am trying few things in ctakes.
>> I
>>>> need to use the JCAS pool for multithreading. https://uima.
>>>> apache.org/d/uimaj-current/tutorials_and_users_guides.
>>>> html#ugr.tug.applications.multi_threaded
>>>> I need to know the equivalent of the following while using programmable
>>>> bluider AE(org.apache.uima.fit.factory.AggregateBuilder;)
>>>>
>>>> mAnalysisEngine = UIMAFramework.produceAnalysisEngine(specifier,3,0);
>>>>
>>>> Currently i am building aggregate AE like this ... in which i need to
>> set
>>>> the property/field to 3 like in above.
>>>>
>>>> *In other words the questions is how to use the cas object pool for
>>>> multiprocessing iusing programmable interface(AggregrateBuilder)
>> instead of
>>>> descriptor file approach.*
>>>>
>>>> --
>>>> with Regards
>>>> Shahid Ashraf
>>>>
>>>
>>
>


Mime
View raw message