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