You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2017/07/06 13:32:34 UTC

svn commit: r1801047 - in /uima/ruta/trunk/ruta-core/src: main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java test/java/org/apache/uima/ruta/engine/ParamVarTest.java

Author: pkluegl
Date: Thu Jul  6 13:32:34 2017
New Revision: 1801047

URL: http://svn.apache.org/viewvc?rev=1801047&view=rev
Log:
UIMA-5467 - IAE instead of NPE

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/ParamVarTest.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java?rev=1801047&r1=1801046&r2=1801047&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeListVariableExpression.java Thu Jul  6 13:32:34 2017
@@ -48,7 +48,12 @@ public class TypeListVariableExpression
       } else if (each instanceof Type) {
         result.add((Type) each);
       } else if(each instanceof String) {
-        result.add(parent.getEnvironment().getType((String) each));
+        Type type = parent.getEnvironment().getType((String) each);
+        if(type != null) {
+          result.add(type);
+        } else {
+          throw new IllegalArgumentException("Not able to resolve type: " + each);
+        }
       }
     }
     return result;

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/ParamVarTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/ParamVarTest.java?rev=1801047&r1=1801046&r2=1801047&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/ParamVarTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/ParamVarTest.java Thu Jul  6 13:32:34 2017
@@ -22,6 +22,7 @@ package org.apache.uima.ruta.engine;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.ruta.type.CW;
 import org.apache.uima.ruta.type.SW;
@@ -88,10 +89,35 @@ public class ParamVarTest {
         SW.class.getName() + RutaEngine.SEPARATOR_VAR_VALUES + CW.class.getName() });
 
     CAS cas = RutaTestUtils.getCAS(document);
-      Ruta.apply(cas, script, params);
+    Ruta.apply(cas, script, params);
 
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "Some", "text");
     
     cas.release();
   }
+  
+  @Test(expected = AnalysisEngineProcessException.class)
+  public void testWithStrictImport() throws Exception {
+    String document = "Some text.";
+    String script = "";
+    script += "TYPE t1;";
+    script += "TYPE t2;";
+    script += "TYPELIST tl;";
+    script += "CW{ -> t1};";
+    script += "SW{ -> t2};";
+    script += "ANY{PARTOF(tl) -> T3};";
+    Map<String, Object> params = new HashMap<String, Object>();
+    params.put(RutaEngine.PARAM_STRICT_IMPORTS, true);
+    params.put(RutaEngine.PARAM_VAR_NAMES, new String[] { "t1", "t2", "tl" });
+    params.put(RutaEngine.PARAM_VAR_VALUES, new String[] {"org.apache.uima.T1", "org.apache.uima.T2", 
+        "org.apache.uima.T1,org.apache.uima.T2"  });
+
+    CAS cas = RutaTestUtils.getCAS(document);
+    Ruta.apply(cas, script, params);
+
+    RutaTestUtils.assertAnnotationsEquals(cas, 3, 2, "Some", "text");
+    
+    cas.release();
+  }
+  
 }