You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2012/04/25 15:26:17 UTC

svn commit: r1330275 - /jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java

Author: sebb
Date: Wed Apr 25 13:26:16 2012
New Revision: 1330275

URL: http://svn.apache.org/viewvc?rev=1330275&view=rev
Log:
Bug 52997 - Jmeter should not exit without saving Test Plan if saving before exit fails
Fix crash with larger trees; only update saved copy of tree if we wrote the whole tree

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java?rev=1330275&r1=1330274&r2=1330275&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java Wed Apr 25 13:26:16 2012
@@ -78,6 +78,7 @@ public class Save implements Command {
 
     public void doAction(ActionEvent e) throws IllegalUserActionException {
         HashTree subTree = null;
+        boolean fullSave = false; // are we saving the whole tree?
         if (!commands.contains(e.getActionCommand())) {
             throw new IllegalUserActionException("Invalid user command:" + e.getActionCommand());
         }
@@ -91,6 +92,7 @@ public class Save implements Command {
             }
             subTree = GuiPackage.getInstance().getCurrentSubTree();
         } else {
+            fullSave = true;
             subTree = GuiPackage.getInstance().getTreeModel().getTestPlan();
         }
 
@@ -135,9 +137,12 @@ public class Save implements Command {
         try {
             ostream = new FileOutputStream(updateFile);
             SaveService.saveTree(subTree, ostream);
-            ActionRouter.getInstance().doActionNow(new ActionEvent(subTree, e.getID(), ActionNames.SUB_TREE_SAVED));
+            if (fullSave) { // Only update the stored copy of the tree for a full save
+                subTree = GuiPackage.getInstance().getTreeModel().getTestPlan(); // refetch, because convertSubTree affects it
+                ActionRouter.getInstance().doActionNow(new ActionEvent(subTree, e.getID(), ActionNames.SUB_TREE_SAVED));
+            }
         } catch (Throwable ex) {
-            log.error("", ex);
+            log.error("Error saving tree:", ex);
             if (ex instanceof Error){
                 throw (Error) ex;
             }