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