### Eclipse Workspace Patch 1.0
#P org.teiid.designer.transformation.ui
Index: src/com/metamatrix/modeler/transformation/ui/editors/TransformationObjectEditorPage.java
===================================================================
--- src/com/metamatrix/modeler/transformation/ui/editors/TransformationObjectEditorPage.java	(revision 1459)
+++ src/com/metamatrix/modeler/transformation/ui/editors/TransformationObjectEditorPage.java	(working copy)
@@ -1147,7 +1147,7 @@
     		tabText = INSERT_TAB_TEXT + " (default)"; //$NON-NLS-1$
     		// Now we check for "insert" default errors and warnings
     		IStatus displayStatus = null;
-    		if( validationResult.hasUpdateStatus(QueryValidator.INSERT_TRNS) ) {
+    		if( !validationResult.isOkToUpdate(QueryValidator.INSERT_TRNS) ) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.INSERT_TRNS).iterator().next();
     		} else if(!selectSqlOk) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.SELECT_TRNS).iterator().next();
@@ -1188,7 +1188,7 @@
     		tabText = UPDATE_TAB_TEXT + " (default)"; //$NON-NLS-1$
     		// Now we check for "insert" default errors and warnings
     		IStatus displayStatus = null;
-    		if( validationResult.hasUpdateStatus(QueryValidator.UPDATE_TRNS) ) {
+    		if( !validationResult.isOkToUpdate(QueryValidator.UPDATE_TRNS) ) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.UPDATE_TRNS).iterator().next();
     		} else if( displayStatus == null && !selectSqlOk) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.SELECT_TRNS).iterator().next();
@@ -1230,9 +1230,9 @@
     		tabText = DELETE_TAB_TEXT + " (default)"; //$NON-NLS-1$
     		// Now we check for "insert" default errors and warnings
     		IStatus displayStatus = null;
-    		if( validationResult.hasUpdateStatus(QueryValidator.DELETE_TRNS) ) {
+    		if( !validationResult.isOkToUpdate(QueryValidator.DELETE_TRNS) ) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.DELETE_TRNS).iterator().next();
-    		} else if( displayStatus == null && !selectSqlOk) {
+    		} else if( !selectSqlOk) {
     			displayStatus = validationResult.getUpdateStatusList(QueryValidator.SELECT_TRNS).iterator().next();
     		}
     		if( displayStatus != null ) {
#P org.teiid.designer.transformation
Index: src/com/metamatrix/modeler/transformation/validation/SqlTransformationResult.java
===================================================================
--- src/com/metamatrix/modeler/transformation/validation/SqlTransformationResult.java	(revision 1449)
+++ src/com/metamatrix/modeler/transformation/validation/SqlTransformationResult.java	(working copy)
@@ -7,18 +7,16 @@
  */
 package com.metamatrix.modeler.transformation.validation;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.Map;
 import java.util.Set;
-
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EObject;
 import org.teiid.query.sql.lang.Command;
-
 import com.metamatrix.modeler.core.ModelerCore;
 import com.metamatrix.modeler.core.query.QueryValidationResult;
 import com.metamatrix.modeler.core.query.QueryValidator;
@@ -287,38 +285,7 @@
      * @return true if no problems of the specified SQL command type exist
      */
     public boolean isOkToUpdate(int cmdType) {
-    	if(getUpdateStatusList() == null || getUpdateStatusList().isEmpty() ) return true;
-    	
-    	
-    	for( IStatus status : getUpdateStatusList() ) {
-    		int code = status.getCode();
-    		
-    		switch (cmdType) {
-	    		case QueryValidator.INSERT_TRNS: {
-	    			if( code == QueryValidator.INSERT_SQL_PROBLEM) {
-	    				return false;
-	    			}
-	    		} break;
-	    		case QueryValidator.UPDATE_TRNS: {
-	    			if( code == QueryValidator.UPDATE_SQL_PROBLEM) {
-	    				return false;
-	    			}
-	    		} break;
-	    		case QueryValidator.DELETE_TRNS: {
-	    			if( code == QueryValidator.DELETE_SQL_PROBLEM) {
-	    				return false;
-	    			}
-	    		} break;
-	    		case QueryValidator.SELECT_TRNS: {
-	    			if( code == QueryValidator.ALL_UPDATE_SQL_PROBLEM) {
-	    				return false;
-	    			}
-	    		} break;
-    		}
-    		
-    	}
-    	
-    	return true;
+    	return getUpdateMaxSeverity(cmdType) < IStatus.ERROR;
     }
     
     /**
@@ -328,75 +295,41 @@
     public Collection<IStatus> getUpdateStatusList(int cmdType) {
     	if( getUpdateStatusList() == null || getUpdateStatusList().isEmpty() )  return getUpdateStatusList();
     	
-    	Collection<IStatus> cmdStatusList = new ArrayList<IStatus>();
+    	LinkedList<IStatus> cmdStatusList = new LinkedList<IStatus>();
     	for( IStatus status : getUpdateStatusList() ) {
     		int code = status.getCode();
     		
-    		switch (cmdType) {
-	    		case QueryValidator.INSERT_TRNS: {
-	    			if( code == QueryValidator.INSERT_SQL_PROBLEM) {
-	    				cmdStatusList.add(status);
-	    			}
-	    		} break;
-	    		case QueryValidator.UPDATE_TRNS: {
-	    			if( code == QueryValidator.UPDATE_SQL_PROBLEM) {
-	    				cmdStatusList.add(status);
-	    			}
-	    		} break;
-	    		case QueryValidator.DELETE_TRNS: {
-	    			if( code == QueryValidator.DELETE_SQL_PROBLEM) {
-	    				cmdStatusList.add(status);
-	    			}
-	    		} break;
-	    		case QueryValidator.SELECT_TRNS: {
-	    			if( code == QueryValidator.ALL_UPDATE_SQL_PROBLEM) {
-	    				cmdStatusList.add(status);
-	    			}
-	    		} break;
-    		}
-    	}
-    	
-    	return cmdStatusList;
-    }
-    
-    /**
-     * Utility method to check this result if there is any status objects coded to requested SQL command type 
-     * @param cmdType
-     * @return true if status exists for command type
-     */
-    public boolean hasUpdateStatus(int cmdType) {
-    	if( getUpdateStatusList() == null || getUpdateStatusList().isEmpty() )  return false;
-
-    	for( IStatus status : getUpdateStatusList() ) {
-    		int code = status.getCode();
+            if (code != QueryValidator.ALL_UPDATE_SQL_PROBLEM) {
+        		switch (cmdType) {
+    	    		case QueryValidator.INSERT_TRNS: {
+    	    			if( code != QueryValidator.INSERT_SQL_PROBLEM) {
+    	    			    continue;
+    	    			}
+    	    		} break;
+    	    		case QueryValidator.UPDATE_TRNS: {
+    	    			if( code != QueryValidator.UPDATE_SQL_PROBLEM) {
+    	    			    continue;
+    	    			}
+    	    		} break;
+    	    		case QueryValidator.DELETE_TRNS: {
+    	    			if( code != QueryValidator.DELETE_SQL_PROBLEM) {
+    	    			    continue;
+    	    			}
+    	    		} break;
+        		}
+            }
     		
-    		switch (cmdType) {
-	    		case QueryValidator.INSERT_TRNS: {
-	    			if( code == QueryValidator.INSERT_SQL_PROBLEM) {
-	    				return true;
-	    			}
-	    		} break;
-	    		case QueryValidator.UPDATE_TRNS: {
-	    			if( code == QueryValidator.UPDATE_SQL_PROBLEM) {
-	    				return true;
-	    			}
-	    		} break;
-	    		case QueryValidator.DELETE_TRNS: {
-	    			if( code == QueryValidator.DELETE_SQL_PROBLEM) {
-	    				return true;
-	    			}
-	    		} break;
-	    		case QueryValidator.SELECT_TRNS: {
-	    			if( code == QueryValidator.ALL_UPDATE_SQL_PROBLEM) {
-	    				return true;
-	    			}
-	    		} break;
-    		}
+            if (status.getSeverity() > IStatus.WARNING) {
+                cmdStatusList.addFirst(status);
+            } else {
+                cmdStatusList.add(status);
+            }
+            
     	}
     	
-    	return false;
+    	return cmdStatusList;
     }
-    
+        
     /**
      * Utility method to determine the maximum severity of list of statuses for a given SQL command type
      * @param cmdType
