# HG changeset patch # Parent a8d0ac827c07ab4abe1d54bdc915f2592a7b3f4f #253591: Can't rename file with extension .ser diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/src/org/openide/loaders/DataLoaderPool.java --- a/openide.loaders/src/org/openide/loaders/DataLoaderPool.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/src/org/openide/loaders/DataLoaderPool.java Tue Oct 20 16:33:52 2015 +0200 @@ -76,7 +76,12 @@ private static MultiFileLoader[] systemLoaders; /** standard default loaders. Accessed by getDefaultLoaders method only */ private static MultiFileLoader[] defaultLoaders; - + + // Flag to allow loading of .instance and .ser files from any FS. This is by + // default false - these files can be loaded only from system filesystem. + private static final boolean INSTANCE_FILES_IN_ANY_FS = Boolean.getBoolean( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS"); //#253591 //NOI18N + private static DataLoaderPool DEFAULT; /** Getter for the default pool of loaders used in the system. @@ -890,15 +895,27 @@ @Override protected FileObject findPrimaryFile(FileObject fo) { FileObject r = super.findPrimaryFile(fo); - if (r != null && r.getPath().equals("loaders.ser")) { // NOI18N - try { - if (r.getFileSystem().isDefault()) { - // Skip it. + if (r == null) { + return null; + } + try { + if (INSTANCE_FILES_IN_ANY_FS) { + // Instance files are allowed in any filesystem, just skip + // "loaders.ser" file in system filesystem. + if (r.getPath().equals("loaders.ser") //NOI18N + && r.getFileSystem().isDefault()) { return null; } - } catch (FileStateInvalidException e) { - Logger.getLogger(DataLoaderPool.class.getName()).log(Level.WARNING, null, e); + } else { + // Instance files are allowed only in system filesystem, + // but "loaders.ser" is still skipped. + if (!r.getFileSystem().isDefault() + || r.getPath().equals("loaders.ser")) { //NOI18N + return null; + } } + } catch (FileStateInvalidException e) { + Logger.getLogger(DataLoaderPool.class.getName()).log(Level.WARNING, null, e); } return r; } diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/awt/MenuBarDeadlock163201Test.java --- a/openide.loaders/test/unit/src/org/openide/awt/MenuBarDeadlock163201Test.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/awt/MenuBarDeadlock163201Test.java Tue Oct 20 16:33:52 2015 +0200 @@ -151,6 +151,8 @@ @Override protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N LOG = Logger.getLogger("test." + getName()); mfs = new MFS(); FileObject fo = FileUtil.createFolder( diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/awt/MenuBarTest.java --- a/openide.loaders/test/unit/src/org/openide/awt/MenuBarTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/awt/MenuBarTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -103,6 +103,8 @@ @Override protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N CreateOnlyOnceAction.instancesCount = 0; CreateOnlyOnceAction.w = new StringWriter(); CreateOnlyOnceAction.pw = new PrintWriter(CreateOnlyOnceAction.w); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/BasicDataObjectTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/BasicDataObjectTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/BasicDataObjectTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -67,6 +67,8 @@ // For each test setup a FileSystem and DataObjects protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N clearWorkDir (); lfs = TestUtilHid.createLocalFileSystem (getWorkDir (), fsstruct); Repository.getDefault ().addFileSystem (lfs); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/DataFolderTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/DataFolderTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/DataFolderTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -79,6 +79,8 @@ @Override protected void setUp () throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N clearWorkDir (); } diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/DataShadowTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/DataShadowTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/DataShadowTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -101,7 +101,9 @@ } protected void setUp() throws Exception { - + + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N lfs = FileUtil.getConfigRoot().getFileSystem(); FileObject[] delete = lfs.getRoot().getChildren(); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/FolderChildrenTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/FolderChildrenTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/FolderChildrenTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -125,6 +125,8 @@ @Override protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N super.setUp(); clearWorkDir(); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTaskOrderTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTaskOrderTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTaskOrderTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -76,6 +76,8 @@ @Override protected void setUp () throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N clearWorkDir (); err = Logger.getLogger("test." + getName()); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/FolderInstanceTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -76,6 +76,8 @@ } protected void setUp () throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N MockServices.setServices(Pool.class); DataLoaderPool pool = DataLoaderPool.getDefault (); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/FolderLookupTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/FolderLookupTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/FolderLookupTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -84,6 +84,8 @@ @Override protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N super.setUp(); clearWorkDir(); } diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceCookieViaNodeTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceCookieViaNodeTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceCookieViaNodeTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -77,6 +77,8 @@ @Override protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N clearWorkDir(); wd = getWorkDir(); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectGetNameTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectGetNameTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectGetNameTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -74,7 +74,9 @@ } protected void setUp () throws Exception { - + + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N cnt = 0; File f = new File(getWorkDir(), "layer.xml"); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectHasEditorTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectHasEditorTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectHasEditorTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -68,6 +68,8 @@ @Override protected void setUp () throws java.lang.Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N clearWorkDir (); // initialize modules diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectIssue47707Test.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectIssue47707Test.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectIssue47707Test.java Tue Oct 20 16:33:52 2015 +0200 @@ -67,6 +67,8 @@ } protected @Override void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N MockLookup.setInstances(new EP()); String fsstruct [] = new String [] { diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectLookupWarningTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectLookupWarningTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectLookupWarningTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -78,6 +78,8 @@ protected void setUp () throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N TestUtilHid.destroyLocalFileSystem (getName()); clearWorkDir(); lfs = TestUtilHid.createLocalFileSystem (getWorkDir(), new String[0]); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectSynchronizedTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectSynchronizedTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectSynchronizedTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -59,6 +59,12 @@ super(name); } + @Override + protected void setUp() throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N + } + public void testSynchronization() throws Exception { FileSystem fs = new XMLFileSystem(this.getClass().getClassLoader().getResource("org/openide/loaders/data/InstanceDataObjectTest.xml")); FileObject fo = fs.findResource("testInstanceDefinitions/s.instance"); diff -r a8d0ac827c07 -r b6cccf76109a openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java Tue Oct 20 10:49:28 2015 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java Tue Oct 20 16:33:52 2015 +0200 @@ -114,6 +114,8 @@ protected void setUp () throws Exception { + System.setProperty( + "org.openide.loaders.INSTANCE_FILES_IN_ANY_FS", "true");//NOI18N // initialize module layers Lookup.getDefault().lookup(ModuleInfo.class);