Index: /applications/editors/josm/plugins/native-password-manager/build.xml
===================================================================
--- /applications/editors/josm/plugins/native-password-manager/build.xml	(revision 33586)
+++ /applications/editors/josm/plugins/native-password-manager/build.xml	(revision 33587)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12678"/>
+    <property name="plugin.main.version" value="12805"/>
     <property name="plugin.author" value="Paul Hartmann"/>
     <property name="plugin.class" value="org.openstreetmap.josm.plugins.npm.NPMPlugin"/>
Index: /applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java
===================================================================
--- /applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java	(revision 33586)
+++ /applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java	(revision 33587)
@@ -222,5 +222,5 @@
     }      
   
-    private class CommandResult {
+    private static class CommandResult {
         private int exitCode;
         private char[] retVal;
Index: /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/InitializationWizard.java
===================================================================
--- /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/InitializationWizard.java	(revision 33586)
+++ /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/InitializationWizard.java	(revision 33587)
@@ -43,7 +43,7 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.oauth.OAuthToken;
-import org.openstreetmap.josm.gui.preferences.server.ProxyPreferencesPanel;
 import org.openstreetmap.josm.gui.util.WindowGeometry;
 import org.openstreetmap.josm.gui.widgets.HtmlPanel;
+import org.openstreetmap.josm.io.DefaultProxySelector;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.auth.CredentialsAgentException;
@@ -365,13 +365,13 @@
             }
             
-            String proxy_username = Main.pref.get(ProxyPreferencesPanel.PROXY_USER, null);
-            String proxy_password = Main.pref.get(ProxyPreferencesPanel.PROXY_PASS, null);
-            String proxy_host = Main.pref.get(ProxyPreferencesPanel.PROXY_HTTP_HOST, null);
+            String proxy_username = Main.pref.get(DefaultProxySelector.PROXY_USER, null);
+            String proxy_password = Main.pref.get(DefaultProxySelector.PROXY_PASS, null);
+            String proxy_host = Main.pref.get(DefaultProxySelector.PROXY_HTTP_HOST, null);
             if (proxy_username != null || proxy_password != null) {
                 try {
                     cm.store(RequestorType.PROXY, proxy_host, new PasswordAuthentication(string(proxy_username), toCharArray(proxy_password)));
                     if (rbClear.isSelected()) {
-                        Main.pref.put(ProxyPreferencesPanel.PROXY_USER, null);
-                        Main.pref.put(ProxyPreferencesPanel.PROXY_PASS, null);
+                        Main.pref.put(DefaultProxySelector.PROXY_USER, null);
+                        Main.pref.put(DefaultProxySelector.PROXY_PASS, null);
                     }
                 } catch (CredentialsAgentException ex) {
@@ -425,6 +425,6 @@
             Main.pref.get("osm-server.username", null) != null ||
             Main.pref.get("osm-server.password", null) != null ||
-            Main.pref.get(ProxyPreferencesPanel.PROXY_USER, null) != null ||
-            Main.pref.get(ProxyPreferencesPanel.PROXY_PASS, null) != null ||
+            Main.pref.get(DefaultProxySelector.PROXY_USER, null) != null ||
+            Main.pref.get(DefaultProxySelector.PROXY_PASS, null) != null ||
             Main.pref.get("oauth.access-token.key", null) != null ||
             Main.pref.get("oauth.access-token.secret", null) != null;
Index: /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMCredentialsAgent.java
===================================================================
--- /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMCredentialsAgent.java	(revision 33586)
+++ /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMCredentialsAgent.java	(revision 33587)
@@ -2,7 +2,7 @@
 package org.openstreetmap.josm.plugins.npm;
 
+import static org.openstreetmap.josm.tools.I18n.tr;
+
 import java.awt.Component;
-import static org.openstreetmap.josm.tools.I18n.tr;
-
 import java.net.Authenticator.RequestorType;
 import java.net.PasswordAuthentication;
@@ -12,4 +12,5 @@
 import java.util.Map;
 import java.util.zip.CRC32;
+
 import javax.swing.text.html.HTMLEditorKit;
 
@@ -17,6 +18,6 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.oauth.OAuthToken;
-import org.openstreetmap.josm.gui.preferences.server.ProxyPreferencesPanel;
 import org.openstreetmap.josm.gui.widgets.HtmlPanel;
+import org.openstreetmap.josm.io.DefaultProxySelector;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.auth.AbstractCredentialsAgent;
@@ -70,6 +71,6 @@
     protected String getProxyDescriptor() {
         String pref = Main.pref.getPreferenceFile().getAbsolutePath();
-        String host = Main.pref.get(ProxyPreferencesPanel.PROXY_HTTP_HOST, "");
-        String port = Main.pref.get(ProxyPreferencesPanel.PROXY_HTTP_PORT, "");
+        String host = Main.pref.get(DefaultProxySelector.PROXY_HTTP_HOST, "");
+        String port = Main.pref.get(DefaultProxySelector.PROXY_HTTP_PORT, "");
         
         CRC32 id = new CRC32();
@@ -229,8 +230,8 @@
             sensitive.add(tr("password"));
         }
-        if (Main.pref.get(ProxyPreferencesPanel.PROXY_USER, null) != null) {
+        if (Main.pref.get(DefaultProxySelector.PROXY_USER, null) != null) {
             sensitive.add(tr("proxy username"));
         }
-        if (Main.pref.get(ProxyPreferencesPanel.PROXY_PASS, null) != null) {
+        if (Main.pref.get(DefaultProxySelector.PROXY_PASS, null) != null) {
             sensitive.add(tr("proxy password"));
         }
Index: /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMType.java
===================================================================
--- /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMType.java	(revision 33586)
+++ /applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/NPMType.java	(revision 33587)
@@ -8,4 +8,5 @@
 import org.netbeans.modules.keyring.mac.MacProvider;
 import org.netbeans.spi.keyring.KeyringProvider;
+import org.openstreetmap.josm.tools.JosmRuntimeException;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
@@ -92,9 +93,7 @@
         if (provider == null) {
             try {
-                provider = providerClass.newInstance();
-            } catch (InstantiationException ex) {
-                throw new RuntimeException();
-            } catch (IllegalAccessException ex) {
-                throw new RuntimeException();
+                provider = providerClass.getDeclaredConstructor().newInstance();
+            } catch (IllegalArgumentException | ReflectiveOperationException | SecurityException ex) {
+                throw new JosmRuntimeException(ex);
             }
         }
