[130958] Axis deployment problem
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
index 0d08d10..41e5c56 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
@@ -1,12 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 
 package org.eclipse.wst.command.internal.env.core.data;
@@ -15,8 +18,60 @@
 
 public class ClassEntry
 {
-  public Object lastObject_;
+  // A list of getter methods for a particular class.
   public Vector getterList_;
+  
+  // A list of setter methods for a particular class.
   public Vector setterList_;
-  public int    order_;
+  
+  // A list of instance objects for this class.  Only the last entry
+  // should be looked at. 
+  private Vector objectList_ = new Vector();
+  
+  // A list of Interger objects that represent an ordering of objects.
+  // The number of entries in the objectList vector and the orderList vector
+  // should be the same.  Each entry in the objectList vector is
+  // corelated with each entry in the orderList vector.
+  private Vector orderList_ = new Vector();
+  
+  public void addObject( Object object, int order )
+  {
+    objectList_.add(object);
+    orderList_.add( new Integer(order) );
+  }
+  
+  public Object getLastObject()
+  {
+    Object result = null;
+    
+    if( objectList_.size() > 0 )
+    {
+      result = objectList_.lastElement();
+    }
+      
+    return result;
+  }
+  
+  public int getLastOrder()
+  {
+    int result = -1;
+    
+    if( orderList_.size() > 0 )
+    {
+      result = ((Integer)orderList_.lastElement()).intValue();
+    }
+      
+    return result;
+  }
+  
+  public void removeObject( Object object )
+  {
+    int removalIndex = objectList_.indexOf(object);
+    
+    if( removalIndex != -1 )
+    {
+      objectList_.remove(removalIndex);
+      orderList_.remove(removalIndex);
+    }   
+  }
 }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
index 30ce90f..e7ffe03 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
@@ -1,12 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.data;
 
@@ -24,7 +27,7 @@
   private DataMappingRegistryImpl registry_;
   private Hashtable               classTable_;
   private int                     order_;
-  private IEnvironment				environment_;
+  private IEnvironment				    environment_;
   
   public DataFlowManager( DataMappingRegistryImpl registry, IEnvironment environment )
   {
@@ -39,6 +42,20 @@
     return registry_; 
   }
   
+  // Remove this instance object from the mapping table.
+  public void unprocess( Object object )
+  {
+    String     objectType = object.getClass().getName();
+    ClassEntry classEntry = (ClassEntry)classTable_.get( objectType );
+
+    if( classEntry != null )
+    {
+      classEntry.removeObject(object);
+    }
+  }
+  
+  // Add this object to our mapping table and call the setters
+  // that have corresponding getter objects.
   public void process( Object object )
   {
     // Add this object to the classTable_ if required.
@@ -52,9 +69,8 @@
       classEntry = new ClassEntry();
       classTable_.put( objectType, classEntry );
     }
-    
-    classEntry.lastObject_ = object;
-    classEntry.order_      = order_++;
+        
+    classEntry.addObject(object, order_++ );
     
     // Now process the setters for this object
     Vector ruleEntries  = registry_.getRuleEntries( objectType );
@@ -160,22 +176,27 @@
     
     if( classEntry != null )
     {
-      if( classEntry.getterList_ == null )
-      {
-        // Build the getter list.
-        classEntry.getterList_ = getGetterList( classEntry.lastObject_ );
-      }
+      Object lastObject = classEntry.getLastObject();
       
-      for( int index = 0; index < classEntry.getterList_.size(); index++ )
-      {
-        Method getter = (Method)classEntry.getterList_.elementAt( index );
-        
-        if( getter.getName().equals( "get" + sourceProperty ))
+      if( lastObject != null )
+      {        
+        if( classEntry.getterList_ == null )
         {
-          getterFound.order  = classEntry.order_;
-          getterFound.method = getter;
-          getterFound.object = classEntry.lastObject_;
-          break;
+          // Build the getter list.
+          classEntry.getterList_ = getGetterList( lastObject );
+        }
+      
+        for( int index = 0; index < classEntry.getterList_.size(); index++ )
+        {
+          Method getter = (Method)classEntry.getterList_.elementAt( index );
+        
+          if( getter.getName().equals( "get" + sourceProperty ))
+          {
+            getterFound.order  = classEntry.getLastOrder();
+            getterFound.method = getter;
+            getterFound.object = lastObject;
+            break;
+          }
         }
       }
     }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
index 4b98c58..131dc23 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
@@ -6,7 +6,10 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.fragment;
 
@@ -277,6 +280,7 @@
     try
     {
 	    cmd.undo( null, null );
+      dataManager_.unprocess(cmd);
     }
     catch( Exception exc )
     {
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
index 37a8fe0..9285f39 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
@@ -6,7 +6,10 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets;
 
@@ -183,6 +186,10 @@
   	    undoToLastPage();
 	    }
 	  
+      // Since we are moving backwards we need to remove the
+      // current page object from the mapping table.
+      dataManager_.unprocess( currentPage_.getDataEvents() );
+      
   	  currentPage_ = page;
   	}	
   	else if( isPageVisible )