Author: rec Date: Wed Apr 3 20:59:00 2013 New Revision: 1464201 URL: http://svn.apache.org/r1464201 Log: [UIMA-2798] NPE when primitive AE is added to CpeBuilder - Fixed by using a non-empty delegate key
Added: uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java (with props) Modified: uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/CpeBuilder.java Modified: uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/CpeBuilder.java URL: http://svn.apache.org/viewvc/uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/CpeBuilder.java?rev=1464201&r1=1464200&r2=1464201&view=diff ============================================================================== --- uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/CpeBuilder.java (original) +++ uima/sandbox/uimafit/trunk/uimafit/src/main/java/org/apache/uima/fit/factory/CpeBuilder.java Wed Apr 3 20:59:00 2013 @@ -92,7 +92,7 @@ public class CpeBuilder { if (aDesc.isPrimitive()) { // For a primitive AE we just add it. - CpeIntegratedCasProcessor proc = createProcessor("", aDesc); + CpeIntegratedCasProcessor proc = createProcessor("delegate", aDesc); cpeDesc.addCasProcessor(proc); } else { // For an aggregate AE we dive into the first aggregation level and add each of the @@ -125,7 +125,9 @@ public class CpeBuilder { cpeDesc.setProcessingUnitThreadCount(maxProcessingUnitThreadCount); } CollectionProcessingEngine cpe = produceCollectionProcessingEngine(cpeDesc, resMgr, null); - cpe.addStatusCallbackListener(aListener); + if (aListener != null) { + cpe.addStatusCallbackListener(aListener); + } return cpe; } Added: uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java URL: http://svn.apache.org/viewvc/uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java?rev=1464201&view=auto ============================================================================== --- uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java (added) +++ uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java Wed Apr 3 20:59:00 2013 @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.uima.fit.factory; + +import org.apache.uima.analysis_engine.AnalysisEngineDescription; +import org.apache.uima.collection.CollectionProcessingEngine; +import org.apache.uima.collection.CollectionReaderDescription; +import org.apache.uima.fit.component.NoOpAnnotator; +import org.apache.uima.fit.factory.testCrs.SingleFileXReader; +import org.junit.Test; +import static org.apache.uima.fit.factory.CollectionReaderFactory.*; +import static org.apache.uima.fit.factory.AnalysisEngineFactory.*; + +public class CpeBuilderTest { + + @Test + public void testSinglePrimitiveAE() throws Exception + { + CollectionReaderDescription cr = createDescription( + SingleFileXReader.class, + SingleFileXReader.PARAM_XML_SCHEME, "XCAS", + SingleFileXReader.PARAM_FILE_NAME, "src/test/resources/data/docs/test.xcas"); + + AnalysisEngineDescription ae = createPrimitiveDescription(NoOpAnnotator.class); + + CpeBuilder builder = new CpeBuilder(); + builder.setReader(cr); + builder.setAnalysisEngine(ae); + CollectionProcessingEngine cpe = builder.createCpe(null); + } +} Propchange: uima/sandbox/uimafit/trunk/uimafit/src/test/java/org/apache/uima/fit/factory/CpeBuilderTest.java ------------------------------------------------------------------------------ svn:eol-style = native