You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2013/04/26 22:24:58 UTC

svn commit: r1476387 - in /uima/sandbox/uimafit/trunk/uimafit/src: main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java

Author: rec
Date: Fri Apr 26 20:24:57 2013
New Revision: 1476387

URL: http://svn.apache.org/r1476387
Log:
[UIMA-2815] Throw IllegalArgumentException when component and componentName list is not of equal size 

Modified:
    uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java
    uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java

Modified: uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java?rev=1476387&r1=1476386&r2=1476387&view=diff
==============================================================================
--- uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java (original)
+++ uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/AnalysisEngineFactory.java Fri Apr 26 20:24:57 2013
@@ -511,6 +511,10 @@ public final class AnalysisEngineFactory
 
   /**
    * A factory method for creating an aggregate description.
+   * 
+   * @param analysisEngineDescriptions list of analysis engine descriptions.
+   * @param componentNames list of component names - must be one name per description!
+   * @param typeSystem the type system to be used.
    */
   public static AnalysisEngineDescription createAggregateDescription(
           List<AnalysisEngineDescription> analysisEngineDescriptions, List<String> componentNames,
@@ -518,6 +522,20 @@ public final class AnalysisEngineFactory
           SofaMapping[] sofaMappings, FlowControllerDescription flowControllerDescription)
           throws ResourceInitializationException {
 
+    if (componentNames == null) {
+      throw new IllegalArgumentException("Parameter [componentNames] cannot be null");
+    }
+
+    if (analysisEngineDescriptions == null) {
+      throw new IllegalArgumentException("Parameter [analysisEngineDescriptions] cannot be null");
+    }
+    
+    if (analysisEngineDescriptions.size() != componentNames.size()) {
+      throw new IllegalArgumentException("Number of descriptions ["
+              + analysisEngineDescriptions.size() + "]does not match number of component names ["
+              + componentNames.size() + "].");
+    }
+
     // create the descriptor and set configuration parameters
     AnalysisEngineDescription desc = new AnalysisEngineDescription_impl();
     desc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);

Modified: uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java?rev=1476387&r1=1476386&r2=1476387&view=diff
==============================================================================
--- uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java (original)
+++ uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java Fri Apr 26 20:24:57 2013
@@ -501,4 +501,14 @@ public class AnalysisEngineFactoryTest e
     AnalysisEngineFactory.createPrimitive(ParameterizedAE.class, typeSystemDescription);
   }
 
+  @Test(expected = IllegalArgumentException.class)
+  public void testUnbalancedComponentAndNames() throws ResourceInitializationException {
+    List<AnalysisEngineDescription> descriptions = new ArrayList<AnalysisEngineDescription>();
+    descriptions.add(AnalysisEngineFactory.createPrimitiveDescription(NoOpAnnotator.class));
+    descriptions.add(AnalysisEngineFactory.createPrimitiveDescription(NoOpAnnotator.class));
+    List<String> names = new ArrayList<String>();
+    
+    AnalysisEngineFactory.createAggregateDescription(descriptions, names,
+            TypeSystemDescriptionFactory.createTypeSystemDescription(), null, null, null);
+  }
 }