You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2018/07/03 19:36:29 UTC
svn commit: r1835015 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src:
main/java/org/apache/uima/cas/ main/java/org/apache/uima/cas/impl/
main/resources/org/apache/uima/ test/java/org/apache/uima/cas/impl/
test/java/org/apache/uima/cas/test/
Author: schor
Date: Tue Jul 3 19:36:29 2018
New Revision: 1835015
URL: http://svn.apache.org/viewvc?rev=1835015&view=rev
Log:
[UIMA-5740] new check in getFeatureStructure API to insure feature is a fs.
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/XmiCompare.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java?rev=1835015&r1=1835014&r2=1835015&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java Tue Jul 3 19:36:29 2018
@@ -50,6 +50,11 @@ public class CASRuntimeException extends
public static final String INAPPROP_RANGE = "INAPPROP_RANGE";
/**
+ * Wrong access method "getFeatureValue" for a feature "{0}" in a FeatureStructure with type "{1}" whose range is "{2}" which is not a featureStructure.
+ */
+ public static final String INAPPROP_RANGE_NOT_FS = "INAPPROP_RANGE_NOT_FS";
+
+ /**
* Setting a reference value "{0}" from a string is not supported.
*/
public static final String SET_REF_FROM_STRING_NOT_SUPPORTED = "SET_REF_FROM_STRING_NOT_SUPPORTED";
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java?rev=1835015&r1=1835014&r2=1835015&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java Tue Jul 3 19:36:29 2018
@@ -36,7 +36,6 @@ import org.apache.uima.cas.Feature;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.SofaFS;
import org.apache.uima.cas.Type;
-import org.apache.uima.cas.TypeSystem;
import org.apache.uima.cas.impl.SlotKinds.SlotKind;
import org.apache.uima.internal.util.Misc;
import org.apache.uima.jcas.JCas;
@@ -836,6 +835,7 @@ public class FeatureStructureImplC imple
@Override
public TOP getFeatureValue(Feature feat) {
if (IS_ENABLE_RUNTIME_FEATURE_VALIDATION) _Check_feature_defined_for_this_type(feat);
+ _check_feature_range_is_FeatureStructure(feat, this);
return _getFeatureValueNc((FeatureImpl) feat);
}
@@ -1677,6 +1677,14 @@ public class FeatureStructureImplC imple
}
}
+ private void _check_feature_range_is_FeatureStructure(Feature feat, FeatureStructureImplC fs) {
+ Type range = feat.getRange();
+ if (range.isPrimitive()) {
+ throw new CASRuntimeException(CASRuntimeException.INAPPROP_RANGE_NOT_FS,
+ feat.getName(), fs.getType().getName(), feat.getRange().getName() );
+ }
+ }
+
// private void featureValidation(Feature feat, Object x) {
// featureValidation(feat);
// if (feat.getRange())
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1835015&r1=1835014&r2=1835015&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties Tue Jul 3 19:36:29 2018
@@ -542,6 +542,7 @@ INAPPROP_TYPE = Expected value of type "
INAPPROP_FEAT = Feature "{0}" is not defined for type "{1}".
INAPPROP_FEAT_X = Feature is not defined for type.
INAPPROP_RANGE = Trying to access value of feature "{0}" as "{1}", but range of feature is "{2}".
+INAPPROP_RANGE_NOT_FS = Wrong access method "getFeatureValue" for a feature "{0}" in a FeatureStructure with type "{1}" whose range is "{2}" which is not a featureStructure.
SET_REF_FROM_STRING_NOT_SUPPORTED = Setting a reference value "{0}" from a string is not supported.
PRIMITIVE_VAL_FEAT = Trying to access value of feature "{0}" as feature structure, but is primitive type.
TYPESYSTEM_NOT_LOCKED = Error accessing type system: the type system has not been committed.
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/XmiCompare.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/XmiCompare.java?rev=1835015&r1=1835014&r2=1835015&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/XmiCompare.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/XmiCompare.java Tue Jul 3 19:36:29 2018
@@ -107,6 +107,14 @@ public class XmiCompare {
if (args == null || args.length == 0) {
d1 = Paths.get("some-explicit-coded-path/uv2-out-some-suffix");
d2 = Paths.get("some-explicit-coded-path/uv2-out-some-other-suffix");
+ d1 = Paths.get("c:/a/t/ipd2018/uv2-out-b4-2");
+// d2 = Paths.get("c:/a/t/ipd2018/uv2-out-b4");
+// d1 = Paths.get("c:/a/t/ipd2018/uv2-out-measAnnot-fsiter-2c-getSurroundSent");
+ d2 = Paths.get("c:/a/t/ipd2018/uv2-out-measAnnot-fsiter-2d-getSurroundSent-partial");
+
+ d1 = Paths.get("c:/a/t/ipd2018/uv2-out-b4");
+ d1 = Paths.get("c:/a/t/ipd2018/uv2-out-jp-merge-outer");
+ d2 = Paths.get("c:/a/t/ipd2018/uv2-out-jp-merge");
// skip = 725; // optional skip amount
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java?rev=1835015&r1=1835014&r2=1835015&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java Tue Jul 3 19:36:29 2018
@@ -364,11 +364,12 @@ public class FeatureStructureTest extend
}
assertTrue(caughtExc);
+ // a "getter" test, not "setter" test, on purpose
caughtExc = false;
try {
token.getFeatureValue(this.startFeature);
} catch (CASRuntimeException e) {
- assertTrue(e.getMessageKey().equals(CASRuntimeException.INAPPROP_RANGE));
+ assertTrue(e.getMessageKey().equals(CASRuntimeException.INAPPROP_RANGE_NOT_FS));
caughtExc = true;
}
assertTrue(caughtExc);