diff --git a/openide.loaders/src/org/openide/actions/SaveAsAction.java b/openide.loaders/src/org/openide/actions/SaveAsAction.java --- a/openide.loaders/src/org/openide/actions/SaveAsAction.java +++ b/openide.loaders/src/org/openide/actions/SaveAsAction.java @@ -56,6 +56,7 @@ import org.openide.NotifyDescriptor; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; +import org.openide.filesystems.Repository; import org.openide.loaders.SaveAsCapable; import org.openide.loaders.DataObject; import org.openide.util.ContextAwareAction; @@ -170,9 +171,12 @@ JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle( NbBundle.getMessage(DataObject.class, "LBL_SaveAsTitle" ) ); //NOI18N chooser.setMultiSelectionEnabled( false ); - if( null != newFile ) { + if ( null != newFile && !isDbSystemFile(newFile) ) { chooser.setSelectedFile( newFile ); FileUtil.preventFileChooserSymlinkTraversal( chooser, newFile.getParentFile() ); + } else { + chooser.setSelectedFile(newFile); + FileUtil.preventFileChooserSymlinkTraversal(chooser, new File(System.getProperty("user.home"))); // NOI18N } File origFile = newFile; while( true ) { @@ -196,6 +200,18 @@ } return newFile; } + + private boolean isDbSystemFile(File newFile) { + FileObject dbRelativePathFo = Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("Databases/SQLCommands"); // NOI18N + if (null != dbRelativePathFo && null != newFile) { + String dbSystemPath = FileUtil.getFileDisplayName(dbRelativePathFo); + File dbSystemFile = new File(dbSystemPath); + if (newFile.getParentFile().equals(dbSystemFile)) { + return true; + } + } + return false; } private FileObject getCurrentFileObject() {