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


<?xml version="1.0" encoding="UTF-8"?>
<analysisEngineDeploymentDescription
    xmlns="http://uima.apache.org/resourceSpecifier";>

    <name>XPlagiarismCheckerAggregateAE Deploy Descriptor</name>
    <description>Deploys XPlagiarismCheckerAggregateAE</description>

    <deployment protocol="jms" provider="activemq">
        <service>
            <inputQueue endpoint="XPlagiarismCheckerAggregate"
brokerURL="${defaultBrokerURL}"/>
            <topDescriptor>
                <import location="./XPlagiarismCheckerAggregate.xml"/>
            </topDescriptor>
            <analysisEngine inputQueueScaleout="2"
internalReplyQueueScaleout="3">
                <delegates>
                    <analysisEngine key="FileSystemMultiplerCas">
                        <casMultiplier poolSize="6"/>
                    </analysisEngine>
                    <analysisEngine key="XFileFormatDetector">
                        <scaleout numberOfInstances="2"/>
                        <asyncAggregateErrorConfiguration>
                            <processCasErrors maxRetries="0"
continueOnRetryFailure="true"/>
                        </asyncAggregateErrorConfiguration>
                    </analysisEngine>
                    <analysisEngine key="XDataFileExtractor">
                        <scaleout numberOfInstances="2"/>
                        <asyncAggregateErrorConfiguration>
                            <processCasErrors maxRetries="0"
continueOnRetryFailure="true"/>
                        </asyncAggregateErrorConfiguration>
                    </analysisEngine>
                    <analysisEngine key="XTokenizer">
                        <scaleout numberOfInstances="2"/>
                        <asyncAggregateErrorConfiguration>
                            <processCasErrors maxRetries="0"
continueOnRetryFailure="true"/>
                        </asyncAggregateErrorConfiguration>
                    </analysisEngine>
                    <analysisEngine key="MergerBasePairCasMultipler">
                        <casMultiplier poolSize="2"/>
                    </analysisEngine>
                    <analysisEngine key="XPlagiarismChecker">
                        <scaleout numberOfInstances="2"/>
                        <asyncAggregateErrorConfiguration>
                            <processCasErrors maxRetries="0"
continueOnRetryFailure="true"/>
                        </asyncAggregateErrorConfiguration>
                    </analysisEngine>
                </delegates>
            </analysisEngine>
        </service>
    </deployment>
</analysisEngineDeploymentDescription>

Reply via email to