re: committing to a branch, yes, of course. 

on my to-do- list :-).

-M

On 1/9/2017 3:50 AM, Peter Klügl wrote:
> Hi,
>
>
> I need to take a closer look, but my first guess would be that it should
> simply not be allowed to use Ruta/UIMA in the way the test does: create
> an AnalysisEngine and then the CAs with CasCreationUtils. Or maybe I
> just not yet understant the cause of the problem.
>
>
> In this case it would really be helpful if I can debug the test with
> UIMA v3. Is it an option to commit the changes to some branch?
>
>
> Peter
>
>
> Am 05.01.2017 um 19:50 schrieb Marshall Schor:
>> One test, NewCASPipelineTest, fails in v3, on line 117.
>>
>> This failure doesn't happen when UIMA v3 is run in the mode where it doesn't
>> cache Type systems.
>>
>> Type systems, when committed, are "read-only" and sharable, and not 
>> changeable
>> (after commit). 
>> In UIMA v3, committed type systems are "cached" and reused when another type
>> system is committed which is "equal" to an existing type system.
>>
>> This is normally invisible to users, but has one side effect:  It is 
>> possible to
>> create references to Type and Feature instances as the type system is being
>> constructed, before a type system is committed.  Once the type system is
>> committed, if it turns out that an identical one was cached, that one is 
>> used,
>> and any previously computed Type and Feature refs will now point off into
>> objects that are not part of the type system being used.  The work-around is
>> simply to re-obtain these references from the committed type system.  Some 
>> tests
>> in the core code needed this kind of updating, and I'm wondering if something
>> like this is causing this failure.
>>
>> Here are details: The error stack trace:
>>
>> Caused by: java.lang.IllegalArgumentException: Not able to resolve type:
>> uima.tcas.DocumentAnnotation
>>     at
>> org.apache.uima.ruta.expression.type.SimpleTypeExpression.getType(SimpleTypeExpression.java:48)
>>     at 
>> org.apache.uima.ruta.rule.RutaTypeMatcher.getType(RutaTypeMatcher.java:291)
>>     at 
>> org.apache.uima.ruta.rule.RutaTypeMatcher.getTypes(RutaTypeMatcher.java:305)
>>     at
>> org.apache.uima.ruta.rule.RutaTypeMatcher.getMatchingAnnotations(RutaTypeMatcher.java:66)
>>     at 
>> org.apache.uima.ruta.rule.RutaRuleElement.getAnchors(RutaRuleElement.java:52)
>>     at 
>> org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:59)
>>     at
>> org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:74)
>>     at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:63)
>>     at 
>> org.apache.uima.ruta.block.RutaScriptBlock.apply(RutaScriptBlock.java:48)
>>     at org.apache.uima.ruta.RutaModule.apply(RutaModule.java:56)
>>     at org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:495)
>>
>> line 117 is the 4th call to SimplePipeline.runPipeline.  It is different in 
>> that
>> the ae is set up to not reload the Ruta script:
>>
>> // create a new cas and do not force the ae to update its types
>>     ae.setConfigParameterValue(RutaEngine.PARAM_RELOAD_SCRIPT, false);
>>
>> This is causing the Ruta "environments" to not find
>> "uima.tcas.DocummentAnnotation" in the parent RutaBlock environment context:
>>
>>   public Type getType(MatchContext context, RutaStream stream) {
>>     RutaBlock parent = context.getParent();
>>     Type type = parent.getEnvironment().getType(typeString);
>>
>> type is null, at this point, causing the error.
>>
>> Any idea what needs to be properly initialized, to fix this issue when 
>> running
>> with v3 with Type System caching enabled?
>>
>> Thanks for any insights. -Marshall
>>
>>
>

Reply via email to