1
votes

I am working on eclipse plugin, which will import preferences(.epf) while startup.

I am using below code :

@Override
    public void earlyStartup() 
    {       
        Display.getDefault().syncExec( new Runnable() {            


            @Override
            public void run() {
                try {

                     InputStream in = new FileInputStream(new File("D:/pref.epf"));
                       Platform.getPreferencesService ().importPreferences (in);
}
catch (Exception e) {
                    e.printStackTrace ();
                }
            } 
        });
}

But I am getting below error:

java.lang.IllegalStateException: Preference node "org.eclipse.core.net" has been removed. at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:200) at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:653) at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:812) at org.eclipse.core.internal.net.PreferenceManager.getBoolean(PreferenceManager.java:90) at org.eclipse.core.internal.net.ProxyManager.preferenceChange(ProxyManager.java:416) at org.eclipse.core.internal.preferences.EclipsePreferences$3.run(EclipsePreferences.java:896) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.preferences.EclipsePreferences.firePreferenceEvent(EclipsePreferences.java:899) at org.eclipse.core.internal.preferences.EclipsePreferences.remove(EclipsePreferences.java:1014) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1027) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1038) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1038) at org.eclipse.core.internal.preferences.PreferencesService$1.visit(PreferencesService.java:140) at org.eclipse.core.internal.preferences.EclipsePreferences.accept(EclipsePreferences.java:146) at org.eclipse.core.internal.preferences.PreferencesService.applyPreferences(PreferencesService.java:196) at org.eclipse.core.internal.preferences.PreferencesService.importPreferences(PreferencesService.java:685) at com.gemalto.shd.eclipsebundle.StartupClass$1.run(StartupClass.java:133) at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:164) at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) at org.eclipse.equinox.launcher.Main.run(Main.java:1450) at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

!ENTRY org.eclipse.equinox.preferences 4 2 2014-04-11 18:00:50.950 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.equinox.preferences". !STACK 0 java.lang.IllegalStateException: Preference node "org.eclipse.core.net" has been removed. at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:200) at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:653) at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:812) at org.eclipse.core.internal.net.PreferenceManager.getBoolean(PreferenceManager.java:90) at org.eclipse.core.internal.net.ProxyManager.preferenceChange(ProxyManager.java:416) at org.eclipse.core.internal.preferences.EclipsePreferences$3.run(EclipsePreferences.java:896) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.preferences.EclipsePreferences.firePreferenceEvent(EclipsePreferences.java:899) at org.eclipse.core.internal.preferences.EclipsePreferences.remove(EclipsePreferences.java:1014) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1027) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1038) at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:1038) at org.eclipse.core.internal.preferences.PreferencesService$1.visit(PreferencesService.java:140) at org.eclipse.core.internal.preferences.EclipsePreferences.accept(EclipsePreferences.java:146) at org.eclipse.core.internal.preferences.PreferencesService.applyPreferences(PreferencesService.java:196) at org.eclipse.core.internal.preferences.PreferencesService.importPreferences(PreferencesService.java:685) at com.gemalto.shd.eclipsebundle.StartupClass$1.run(StartupClass.java:133) at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:164) at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) at org.eclipse.equinox.launcher.Main.run(Main.java:1450) at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

1

1 Answers

2
votes

Looking at the import preferences dialog I think you need to specify a preference filter in the import:

 IPreferenceFilter [] filters = new IPreferenceFilter[1];

 filters[0] = new IPreferenceFilter() {
     public String[] getScopes() {
       return new String[] {InstanceScope.SCOPE, ConfigurationScope.SCOPE};
     }

     public Map getMapping(String scope) {
       return null;
     }
 };

 IPreferencesService service = Platform.getPreferencesService();

 IExportedPreferences prefs = service.readPreferences(input stream);

 service.applyPreferences(prefs, filters);

(adapted from org.eclipse.ui.internal.wizards.preferences.WizardPreferencesImportPage1)