[teiid-commits] teiid SVN: r3245 - in branches/7.4.x/runtime/src: test/java/org/teiid/deployers and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon Jun 13 10:52:41 EDT 2011


Author: shawkins
Date: 2011-06-13 10:52:40 -0400 (Mon, 13 Jun 2011)
New Revision: 3245

Modified:
   branches/7.4.x/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
   branches/7.4.x/runtime/src/test/java/org/teiid/deployers/TestCompositeVDB.java
Log:
TEIID-1618 fix for removeChild causing subsequent npe

Modified: branches/7.4.x/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
===================================================================
--- branches/7.4.x/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java	2011-06-10 19:34:01 UTC (rev 3244)
+++ branches/7.4.x/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java	2011-06-13 14:52:40 UTC (rev 3245)
@@ -146,17 +146,19 @@
 		newMergedVDB.setConnectionType(this.vdb.getConnectionType());
 		ConnectorManagerRepository mergedRepo = new ConnectorManagerRepository();
 		mergedRepo.getConnectorManagers().putAll(this.cmr.getConnectorManagers());
-		for (CompositeVDB child:this.children.values()) {
-			
-			// add models
-			for (Model m:child.getVDB().getModels()) {
-				newMergedVDB.addModel((ModelMetaData)m);
+		if (this.children != null) {
+			for (CompositeVDB child:this.children.values()) {
+				
+				// add models
+				for (Model m:child.getVDB().getModels()) {
+					newMergedVDB.addModel((ModelMetaData)m);
+				}
+				
+				for (DataPolicy p:child.getVDB().getDataPolicies()) {
+					newMergedVDB.addDataPolicy((DataPolicyMetadata)p);
+				}
+				mergedRepo.getConnectorManagers().putAll(child.cmr.getConnectorManagers());
 			}
-			
-			for (DataPolicy p:child.getVDB().getDataPolicies()) {
-				newMergedVDB.addDataPolicy((DataPolicyMetadata)p);
-			}
-			mergedRepo.getConnectorManagers().putAll(child.cmr.getConnectorManagers());
 		}
 		newMergedVDB.addAttchment(ConnectorManagerRepository.class, mergedRepo);
 		return newMergedVDB;

Modified: branches/7.4.x/runtime/src/test/java/org/teiid/deployers/TestCompositeVDB.java
===================================================================
--- branches/7.4.x/runtime/src/test/java/org/teiid/deployers/TestCompositeVDB.java	2011-06-10 19:34:01 UTC (rev 3244)
+++ branches/7.4.x/runtime/src/test/java/org/teiid/deployers/TestCompositeVDB.java	2011-06-13 14:52:40 UTC (rev 3245)
@@ -21,6 +21,8 @@
  */
 package org.teiid.deployers;
 
+import static org.junit.Assert.*;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,12 +42,20 @@
 import org.teiid.query.sql.lang.Command;
 import org.teiid.query.unittest.RealMetadataFactory;
 import org.teiid.translator.ExecutionFactory;
+import org.teiid.vdb.runtime.VDBKey;
 
 @SuppressWarnings("nls")
 public class TestCompositeVDB {
 	
 	public static TransformationMetadata createTransformationMetadata(MetadataStore metadataStore, String vdbName) throws Exception {
-    	VDBMetaData vdbMetaData = new VDBMetaData();
+    	CompositeVDB cvdb = createCompositeVDB(metadataStore, vdbName);
+    	VDBMetaData vdb = cvdb.getVDB();
+    	return vdb.getAttachment(TransformationMetadata.class);
+	}
+
+	private static CompositeVDB createCompositeVDB(MetadataStore metadataStore,
+			String vdbName) {
+		VDBMetaData vdbMetaData = new VDBMetaData();
     	vdbMetaData.setName(vdbName); //$NON-NLS-1$
     	vdbMetaData.setVersion(1);
     	for (Schema schema : metadataStore.getSchemas().values()) {
@@ -59,8 +69,7 @@
     	cmr.addConnectorManager("source2", getConnectorManager("bqt2", "FakeTranslator2", "FakeConnection2", getFuncsTwo()));
     	
     	CompositeVDB cvdb = new CompositeVDB(vdbMetaData, metaGroup, null, null, RealMetadataFactory.SFM.getSystemFunctions(),cmr);
-    	VDBMetaData vdb = cvdb.getVDB();
-    	return vdb.getAttachment(TransformationMetadata.class);
+		return cvdb;
 	}
 	
 	private static ConnectorManager getConnectorManager(String modelName, String translatorName, String connectionName,  List<FunctionMethod> funcs) {
@@ -103,7 +112,7 @@
 	
 	
 	private void helpResolve(String sql) throws Exception {
-		TransformationMetadata metadata = createTransformationMetadata(RealMetadataFactory.exampleBQTStore(), "bqt");
+		TransformationMetadata metadata = createTransformationMetadata(RealMetadataFactory.exampleBQTCached().getMetadataStore(), "bqt");
 		Command command = QueryParser.getQueryParser().parseCommand(sql);
 		QueryResolver.resolveCommand(command, metadata);		
 	}
@@ -138,4 +147,10 @@
 		helpResolve("SELECT duplicate_func(BQT1.SmallA.INTKEY) FROM BQT1.SmallA");
 	}		
 	
+	@Test public void testRemoveChild() throws Exception {
+		CompositeVDB vdb = createCompositeVDB(RealMetadataFactory.exampleBQTStore(), "bqt");
+		vdb.removeChild(new VDBKey("foo", 1));
+		assertNotNull(vdb.getVDB());
+	}
+	
 }



More information about the teiid-commits mailing list