Author: pkluegl
Date: Tue Dec 18 21:07:51 2018
New Revision: 1849234

URL: http://svn.apache.org/viewvc?rev=1849234&view=rev
Log:
UIMA-5881: fixed check on false container match, added test

Modified:
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
    
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCard2Test.java

Modified: 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java?rev=1849234&r1=1849233&r2=1849234&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
 Tue Dec 18 21:07:51 2018
@@ -359,9 +359,8 @@ public class WildCardRuleElement extends
         // TODO match and containermatch should be on the correct level!
         result = nextElement.continueMatch(after, anchor, extendedMatch, 
ruleApply,
                 nextContainerMatch, sideStepOrigin, nextElement, stream, 
crowd);
-        List<RuleElementMatch> nextList = 
nextContainerMatch.getInnerMatches().get(nextElement);
-        if (nextList == null || nextList.isEmpty()
-                || !nextList.get(nextList.size() - 1).matched()) {
+//        List<RuleElementMatch> nextList = 
nextContainerMatch.getInnerMatches().get(nextElement);
+        if (result == null || result.isEmpty() || !result.get(result.size() - 
1).matched()) {
           moveOn(after, iterator, stream);
         } else {
           doneHere = true;

Modified: 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCard2Test.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCard2Test.java?rev=1849234&r1=1849233&r2=1849234&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCard2Test.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCard2Test.java
 Tue Dec 18 21:07:51 2018
@@ -142,7 +142,7 @@ public class WildCard2Test {
     Ruta.apply(cas, script);
 
     RutaTestUtils.assertAnnotationsEquals(cas, 2, 3, "A", "X 2 B", "B");
-    Assert.assertEquals(1008,
+    Assert.assertEquals(192,
             
cas.getAnnotationIndex(cas.getTypeSystem().getType(RutaTestUtils.TYPE + 
"3")).size());
     cas.release();
   }
@@ -183,4 +183,16 @@ public class WildCard2Test {
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "1", "1");
   }
 
+  @Test
+  public void testDuplicateAnnotation() throws Exception {
+    String document = "x x x 1 a b c 2 d e f 3";
+    String script = "NUM{->T1, T1};";
+    script += "# t:T1{-> T2};\n";
+
+    CAS cas = RutaTestUtils.getCAS(document);
+    Ruta.apply(cas, script);
+
+    RutaTestUtils.assertAnnotationsEquals(cas, 2, 2, "1", "1");
+  }
+
 }


Reply via email to