Index: openide/loaders/src/org/openide/loaders/InstanceDataObject.java =================================================================== RCS file: /cvs/openide/loaders/src/org/openide/loaders/InstanceDataObject.java,v --- openide/loaders/src/org/openide/loaders/InstanceDataObject.java 16 Sep 2005 11:49:09 -0000 1.25 +++ openide/loaders/src/org/openide/loaders/InstanceDataObject.java 5 Oct 2005 10:34:57 -0000 @@ -1482,10 +1482,11 @@ FileObject memContext = sfs.findResource(prefix); if (memContext == null) throw new FileNotFoundException("SFS:xml/memory while converting a " + obj.getClass().getName()); //NOI18N - String[] classes = new String[] {obj.getClass().getName(), Object.class.getName()}; - for (int i = 0; i < classes.length; i++) { + Class clazz = obj.getClass(); + while (clazz != null) { + String className = clazz.getName(); String convertorPath = new StringBuffer(200).append(prefix).append('/'). - append(classes[i].replace('.', '/')).toString(); // NOI18N + append(className.replace('.', '/')).toString(); // NOI18N FileObject fo = sfs.findResource(convertorPath); if (fo != null) { String providerPath = (String) fo.getAttribute(EA_PROVIDER_PATH); @@ -1497,6 +1498,7 @@ return ret; } } + clazz = clazz.getSuperclass(); } throw new FileNotFoundException("None convertor was found under SFS/xml/memory/ for " + obj.getClass()); //NOI18N } Index: core/settings/src/org/netbeans/modules/settings/Env.java =================================================================== RCS file: /cvs/core/settings/src/org/netbeans/modules/settings/Env.java,v --- core/settings/src/org/netbeans/modules/settings/Env.java 16 Mar 2004 15:28:10 -0000 1.4 +++ core/settings/src/org/netbeans/modules/settings/Env.java 5 Oct 2005 10:34:59 -0000 @@ -101,19 +101,22 @@ /** look up appropriate provider according to clazz */ public static FileObject findProvider(Class clazz) throws IOException { String prefix = "xml/memory/"; //NOI18N - String name = clazz.getName().replace('.', '/'); FileSystem sfs = Repository.getDefault().getDefaultFileSystem(); FileObject memContext = sfs.findResource(prefix); if (memContext == null) throw new java.io.FileNotFoundException("SFS/xml/memory/"); //NOI18N - - String convertorPath = new StringBuffer(200).append(prefix). - append(name).toString(); // NOI18N - FileObject fo = sfs.findResource(convertorPath); - if (fo != null) { - String providerPath = (String) fo.getAttribute(EA_PROVIDER_PATH); - if (providerPath != null) { - return sfs.findResource(providerPath); + + while (clazz != null) { + String name = clazz.getName().replace('.', '/'); + String convertorPath = new StringBuffer(200).append(prefix). + append(name).toString(); // NOI18N + FileObject fo = sfs.findResource(convertorPath); + if (fo != null) { + String providerPath = (String) fo.getAttribute(EA_PROVIDER_PATH); + if (providerPath != null) { + return sfs.findResource(providerPath); + } } + clazz = clazz.getSuperclass(); } return null; }