Thanks :-)

Peter

Am 06.02.2014 22:20, schrieb Marshall Schor:
> This is a true bug.  I've reported it in Jira:
> https://issues.apache.org/jira/browse/UIMA-3603
>
> I've added a fix and implemented some new tests for edge cases, including this
> one which was failing.  Will check it in shortly.
>
>
> -Marshall
>
> On 2/6/2014 2:16 PM, Marshall Schor wrote:
>> I can reproduce this with a simple bit of top level code; the failure seems 
>> to
>> depend on an unusual order of making Feature Structures, and setting up the
>> DocumentAnnotation instance.
>>
>> I'll take a look.
>>
>> -Marshall
>>
>> On 2/6/2014 7:38 AM, Peter Klügl wrote:
>>> I can fix the xmiCAS if I change the address of the DocumentAnnotation
>>> to be lower than the Year...
>>>
>>> Peter
>>>
>>> Am 06.02.2014 13:23, schrieb Peter Klügl:
>>>> Hi,
>>>>
>>>> if I open the following xmiCAS in the CAS Editor, remove the Year
>>>> annotation and try to save the file, then I get the same exception. The
>>>> other annotations are removable...
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xmi:XMI xmlns:Title="http:///uima/ruta/example/Title.ecore";
>>>> xmlns:cas="http:///uima/cas.ecore";
>>>> xmlns:type="http:///org/apache/uima/ruta/type.ecore";
>>>> xmlns:xmi="http://www.omg.org/XMI";
>>>> xmlns:Author="http:///uima/ruta/example/Author.ecore";
>>>> xmlns:tcas="http:///uima/tcas.ecore";
>>>> xmlns:example="http:///uima/ruta/example.ecore"; xmi:version="2.0">
>>>>     <cas:NULL xmi:id="0"/>
>>>>     <cas:Sofa xmi:id="1" sofaNum="1" sofaID="_InitialView"
>>>> mimeType="text" sofaString="Ogren, P.V., Wetzler, P.G., Bethard, S.:
>>>> ClearTK: A UIMA Toolkit for Statistical Natural Language Processing. In:
>>>> UIMA for NLP workshop at LREC 08. (2008)&#13;&#10;"/>
>>>>     <example:Year xmi:id="8" sofa="1" begin="148" end="154"/>
>>>>     <example:Author xmi:id="12" sofa="1" begin="0" end="40"/>
>>>>     <example:Title xmi:id="16" sofa="1" begin="41" end="109"/>
>>>>     <tcas:DocumentAnnotation xmi:id="20" sofa="1" begin="0" end="156"
>>>> language="x-unspecified"/>
>>>>     <cas:View sofa="1" members="8 12 16 20"/>
>>>> </xmi:XMI>
>>>>
>>>>
>>>> Peter
>>>>
>>>> Am 06.02.2014 12:56, schrieb Peter Klügl:
>>>>> Hi,
>>>>>
>>>>> has anyone seen the following exception. I have no idea what can cause
>>>>> this problem. (the typeCode is 0 or something causing the feats int
>>>>> array to be null). I added the method that causes the problem below. It
>>>>> just removes some annotations dependent of its type.
>>>>>
>>>>> I was thinking that the problem is caused by removing annotations that
>>>>> are indexed and are the value of the feature of another indexed
>>>>> annotation. However, that works for almost all types. I would assume
>>>>> that this functionality would not depend on the actual type or the order
>>>>> in the type system, right?
>>>>>
>>>>> Any ideas is greatly appreciated.
>>>>>
>>>>> java.lang.NullPointerException
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer$XmiCasDocSerializer.enqueueFeatures(XmiCasSerializer.java:593)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer$XmiCasDocSerializer.enqueueFeaturesOfIndexed(XmiCasSerializer.java:521)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer$XmiCasDocSerializer.serialize(XmiCasSerializer.java:241)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer$XmiCasDocSerializer.access$700(XmiCasSerializer.java:108)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer.serialize(XmiCasSerializer.java:1551)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer.serialize(XmiCasSerializer.java:1616)
>>>>>     at
>>>>> org.apache.uima.cas.impl.XmiCasSerializer.serialize(XmiCasSerializer.java:1567)
>>>>>     at
>>>>> org.apache.uima.ruta.testing.ui.handlers.RerunActionHandler.writeXmi(RerunActionHandler.java:652)
>>>>>     at
>>>>> org.apache.uima.ruta.testing.ui.handlers.RerunActionHandler.access$0(RerunActionHandler.java:647)
>>>>>     at
>>>>> org.apache.uima.ruta.testing.ui.handlers.RerunActionHandler$RerunHandlerJob.writeCleanInputFiles(RerunActionHandler.java:378)
>>>>>     at
>>>>> org.apache.uima.ruta.testing.ui.handlers.RerunActionHandler$RerunHandlerJob.evalRutaWithClassPathScript(RerunActionHandler.java:196)
>>>>>     at
>>>>> org.apache.uima.ruta.testing.ui.handlers.RerunActionHandler$RerunHandlerJob.run(RerunActionHandler.java:182)
>>>>>     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
>>>>>
>>>>>
>>>>>     private void prepareCas(CAS cas) {
>>>>>       if (!includedTypes.isEmpty()) {
>>>>>         // exclude all other types if there are some included types
>>>>>         excludedTypes = new ArrayList<String>();
>>>>>         List<Type> types =
>>>>> cas.getTypeSystem().getProperlySubsumedTypes(cas.getAnnotationType());
>>>>>         for (Type type : types) {
>>>>>           if (!includedTypes.contains(type.getName())) {
>>>>>             excludedTypes.add(type.getName());
>>>>>           }
>>>>>         }
>>>>>       }
>>>>>       if (includedTypes.isEmpty() && excludedTypes.isEmpty()) {
>>>>>         // remove all annotation in default settings
>>>>>         String documentText = cas.getDocumentText();
>>>>>         cas.reset();
>>>>>         cas.setDocumentText(documentText);
>>>>>       } else {
>>>>>         List<AnnotationFS> toRemove = new LinkedList<AnnotationFS>();
>>>>>         AnnotationIndex<AnnotationFS> annotationIndex =
>>>>> cas.getAnnotationIndex();
>>>>>         for (AnnotationFS annotationFS : annotationIndex) {
>>>>>           Type type = annotationFS.getType();
>>>>>           String typeName = type.getName();
>>>>>           if (includedTypes.contains(typeName) ||
>>>>> !excludedTypes.contains(typeName)) {
>>>>>             toRemove.add(annotationFS);
>>>>>           }
>>>>>         }
>>>>>         for (AnnotationFS each : toRemove) {
>>>>>           if (!cas.getDocumentAnnotation().equals(each)) {
>>>>>             cas.removeFsFromIndexes(each);
>>>>>           }
>>>>>         }
>>>>>       }
>>>>>     }
>>>>>

Reply via email to