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