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"); + } + }