diff -r 4103448f9b46 core.startup/src/org/netbeans/core/startup/layers/BinaryFS.java --- a/core.startup/src/org/netbeans/core/startup/layers/BinaryFS.java Fri Aug 15 11:40:20 2008 +0200 +++ b/core.startup/src/org/netbeans/core/startup/layers/BinaryFS.java Fri Aug 15 12:06:06 2008 +0200 @@ -48,6 +48,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; @@ -489,7 +490,9 @@ if (SharedClassObject.class.isAssignableFrom(cls)) { return SharedClassObject.findObject(cls.asSubclass(SharedClassObject.class), true); } else { - return cls.newInstance(); + Constructor init = cls.getDeclaredConstructor(); + init.setAccessible(true); + return init.newInstance((Object[]) null); } case 12: // serialvalue diff -r 4103448f9b46 openide.filesystems/src/org/openide/filesystems/XMLMapAttr.java --- a/openide.filesystems/src/org/openide/filesystems/XMLMapAttr.java Fri Aug 15 11:40:20 2008 +0200 +++ b/openide.filesystems/src/org/openide/filesystems/XMLMapAttr.java Fri Aug 15 12:06:06 2008 +0200 @@ -886,7 +886,9 @@ if (SharedClassObject.class.isAssignableFrom(cls)) { return SharedClassObject.findObject(cls, true); } else { - return cls.newInstance(); + Constructor init = cls.getDeclaredConstructor(); + init.setAccessible(true); + return init.newInstance((Object[]) null); } case 13: String[] arr = value.split("#", 2); // NOI18N diff -r 4103448f9b46 openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java --- a/openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java Fri Aug 15 11:40:20 2008 +0200 +++ b/openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java Fri Aug 15 12:06:06 2008 +0200 @@ -426,6 +426,30 @@ return map.get("displayName"); } + public static class Value { + private Value() { } + } + public void testNewValueForNonPublicConstructor() throws Exception { + File f = writeFile("layer3.xml", + "\n" + + "\n" + + "" + + " " + + "\n" + + "\n" + + "\n" + ); + + xfs = FileSystemFactoryHid.createXMLSystem(getName(), this, f.toURL()); + FileObject fo = xfs.findResource ("TestModule/sample.txt"); + assertNotNull(fo); + + Object v = fo.getAttribute("v"); + assertNotNull("Attribute found", v); + assertEquals("Right type", Value.class, v.getClass()); + + } + public void testVariousXMLAttributes() throws Exception { URL attribs = XMLFileSystemTestHid.class.getResource("test-layer-attribs.xml"); xfs = FileSystemFactoryHid.createXMLSystem(getName(), this, attribs); diff -r 4103448f9b46 openide.loaders/src/org/openide/loaders/InstanceSupport.java --- a/openide.loaders/src/org/openide/loaders/InstanceSupport.java Fri Aug 15 11:40:20 2008 +0200 +++ b/openide.loaders/src/org/openide/loaders/InstanceSupport.java Fri Aug 15 12:06:06 2008 +0200 @@ -216,7 +216,9 @@ return SharedClassObject.findObject (c.asSubclass(SharedClassObject.class), true); } else { // create new instance - return c.newInstance(); + Constructor init = c.getDeclaredConstructor(); + init.setAccessible(true); + return init.newInstance((Object[]) null); } } } catch (IOException ex) { diff -r 4103448f9b46 openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java --- a/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java Fri Aug 15 11:40:20 2008 +0200 +++ b/openide.loaders/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java Fri Aug 15 12:06:06 2008 +0200 @@ -255,7 +255,7 @@ } public static class TestDefinitions implements Runnable { - public TestDefinitions() {} + TestDefinitions() {} static TestDefinitions create() { return new TestDefinitions();