You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2013/08/13 19:14:30 UTC

svn commit: r1513594 - in /uima/uimaj/trunk/uimaj-core/src: main/java/org/apache/uima/resource/metadata/impl/ main/resources/org/apache/uima/ test/resources/TextAnalysisEngineImplTest/

Author: burn
Date: Tue Aug 13 17:14:29 2013
New Revision: 1513594

URL: http://svn.apache.org/r1513594
Log:
UIMA-3123 Avoid a NPE by checking for missing elements in a nameValuePair

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java
    uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
    uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithGroupParameterError.xml

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java?rev=1513594&r1=1513593&r2=1513594&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java Tue Aug 13 17:14:29 2013
@@ -287,6 +287,10 @@ public class ResourceMetaData_impl exten
     for (int i = 0; i < aNVPs.length; i++) {
       // look up the parameter info
       String name = aNVPs[i].getName();
+      if (name == null) {
+        throw new ResourceConfigurationException(InvalidXMLException.ELEMENT_NOT_FOUND,
+                new Object[] { "name", "nameValuePair" });
+      }
       ConfigurationParameter param = aParamDecls.getConfigurationParameter(aGroupName, name);
       if (param == null) {
         if (aGroupName == null) {
@@ -324,6 +328,10 @@ public class ResourceMetaData_impl exten
           NameValuePair aNVP) throws ResourceConfigurationException {
     String paramName = aParam.getName();
     String paramType = aParam.getType();
+    if (aNVP.getValue() == null) {
+      throw new ResourceConfigurationException(ResourceConfigurationException.CONFIG_SETTING_ABSENT,
+              new Object[] { paramName });
+    }
     Class<?> valClass = aNVP.getValue().getClass();
 
     if (aParam.isMultiValued()) // value must be an array

Modified: uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1513594&r1=1513593&r2=1513594&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties Tue Aug 13 17:14:29 2013
@@ -103,9 +103,9 @@ cas_multiplier_not_supported = The Flow 
 #--------------------------------
 #ResourceConfigurationException
 #--------------------------------
-nonexistent_parameter = No configuration parameter with name {0} is declared in component "{1}".
+nonexistent_parameter = No configuration parameter with name "{0}" is declared in component "{1}".
 
-nonexistent_parameter_in_group = No configuration parameter with name {0} is declared in group \
+nonexistent_parameter_in_group = No configuration parameter with name "{0}" is declared in group \
            {1} in component "{2}".
 
 parameter_type_mismatch = Parameter type mismatch in component "{0}".  A value of class {1} cannot be \
@@ -121,9 +121,7 @@ mandatory_value_missing_in_group = No va
 
 resource_data_not_valid = The configuration data "{0}" for Configuration parameter "{1}" in the resource is not valid
 
-config_setting_absent = Configuration setting for parameter "{0}" is absent.
-
-resource_not_found = Configuration setting for parameter "{0}" is absent.
+config_setting_absent = Configuration setting for the value of parameter "{0}" is absent.
 
 directory_not_found = Invalid value for parameter "{0}" in component "{1}" -- \
 	 directory "{2}" does not exist.
@@ -288,8 +286,6 @@ malformed_url = Malformed URL "{0}". (De
 
 resource_data_not_valid = The configuration data "{0}" for Configuration parameter "{1}" in the resource is not valid
 
-config_setting_absent = Configuration setting for parameter "{0}" is absent.
-
 duplicate_index_name = Two different CAS FeatureStructure indexes with name "{0}" have been defined. (Descriptors: {1}, {2})
 
 param_override_in_primitive =  Configuration parameter "{0}" in primitive Analysis Engine "{1}" \

Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithGroupParameterError.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithGroupParameterError.xml?rev=1513594&r1=1513593&r2=1513594&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithGroupParameterError.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithGroupParameterError.xml Tue Aug 13 17:14:29 2013
@@ -87,10 +87,6 @@
 
 <settingsForGroup name="en">
   <nameValuePair>
-    <name>StringParam</name>
-    <value><string>en</string></value>
-  </nameValuePair>
-  <nameValuePair>
     <name>StringArrayParam</name>
     <value><array>
       <string>e</string>
@@ -128,7 +124,7 @@
   </nameValuePair>
   <nameValuePair>
     <name>IntegerArrayParam</name>
-    <!-- Value should be an array ... will fail unless UIMA_Jira3123 is set -->
+    <!-- Value should be an array ... will fail in a future release unless UIMA_Jira3123 is set -->
     <value><integer>1776</integer></value>
   </nameValuePair>
 </settingsForGroup>