Author: oltka
Date: Wed Feb 10 14:41:56 2010
New Revision: 908519

URL: http://svn.apache.org/viewvc?rev=908519&view=rev
Log:
CAY-1339

* fix exception when new project "save as"

Modified:
    
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java

Modified: 
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java?rev=908519&r1=908518&r2=908519&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
 Wed Feb 10 14:41:56 2010
@@ -21,11 +21,9 @@
 
 import java.awt.Toolkit;
 import java.awt.event.KeyEvent;
-import java.util.prefs.Preferences;
 
 import javax.swing.KeyStroke;
 
-import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.pref.CayennePreferenceForProject;
 import org.apache.cayenne.pref.Domain;
@@ -58,44 +56,49 @@
     @Override
     protected boolean saveAll() throws Exception {
         Project p = getCurrentProject();
-        
-        String oldPath = p.getConfigurationResource().getURL().getPath();
-        // obtain preference object before save, when the project path may 
change.....
-        Domain preference = 
getProjectController().getPreferenceDomainForProject();
 
-        if (p.getConfigurationResource() == null) {
+        if (p == null || p.getConfigurationResource() == null) {
             return super.saveAll();
         }
+        else {
 
-        getProjectController().getProjectWatcher().pauseWatching();
+            String oldPath = p.getConfigurationResource().getURL().getPath();
+            // obtain preference object before save, when the project path may 
change.....
+            Domain preference = 
getProjectController().getPreferenceDomainForProject();
+
+            getProjectController().getProjectWatcher().pauseWatching();
+
+            ProjectSaver saver = getApplication().getInjector().getInstance(
+                    ProjectSaver.class);
+            saver.save(p);
+
+            preference.rename(p.getConfigurationResource().getURL().getPath());
 
-        ProjectSaver saver = getApplication().getInjector().getInstance(
-                ProjectSaver.class);
-        saver.save(p);
-
-        preference.rename(p.getConfigurationResource().getURL().getPath());
-
-        CayennePreferenceForProject.removeOldPreferences();
-        
-        // if change DataChanelDescriptor name - as result change name of xml 
file
-        // we will need change preferences path 
-        String[] path = oldPath.split("/");
-        String[] newPath = 
p.getConfigurationResource().getURL().getPath().split("/");
-        
-        if(!path[path.length -1].equals(newPath[newPath.length -1])){
-            String newName = newPath[newPath.length -1].replace(".xml", "");
-            CayennePreferenceForProject.copyPreferences(newName, 
getProjectController().getPreferenceForProject());
             CayennePreferenceForProject.removeOldPreferences();
+
+            // if change DataChanelDescriptor name - as result change name of 
xml file
+            // we will need change preferences path
+            String[] path = oldPath.split("/");
+            String[] newPath = 
p.getConfigurationResource().getURL().getPath().split("/");
+
+            if (!path[path.length - 1].equals(newPath[newPath.length - 1])) {
+                String newName = newPath[newPath.length - 1].replace(".xml", 
"");
+                CayennePreferenceForProject.copyPreferences(
+                        newName,
+                        getProjectController().getPreferenceForProject());
+                CayennePreferenceForProject.removeOldPreferences();
+            }
+
+            
getApplication().getFrameController().changePathInLastProjListAction(
+                    oldPath,
+                    p.getConfigurationResource().getURL().getPath());
+            Application.getFrame().fireRecentFileListChanged();
+
+            /**
+             * Reset the watcher now
+             */
+            getProjectController().getProjectWatcher().reconfigure();
         }
-        
-        
getApplication().getFrameController().changePathInLastProjListAction(oldPath, 
-                p.getConfigurationResource().getURL().getPath());
-        Application.getFrame().fireRecentFileListChanged();
-
-        /**
-         * Reset the watcher now
-         */
-        getProjectController().getProjectWatcher().reconfigure();
 
         return true;
     }


Reply via email to