Java 7 update 25 hace que nuestra aplicación java web start falle sin registro

Desde la actualización 25 de Java 7 lanzada por Oracle, nuestra aplicación ya no funciona.

Inicialmente recibimos una advertencia sobre las etiquetas de código de código y seguridad que faltan en el archivo Manifest, que reparamos.

El problema con el que ahora terminamos es que en la Consola solo obtenemos las siguientes líneas:

#### Java Web Start Error:
#### null

También obtenemos un cuadro de diálogo Error de aplicación con el mensaje:No es posible iniciar la aplicacion.

El botón de detalles proporciona los siguientes detalles en la Excepción:

java.lang.NullPointerException
    at com.sun.jnlp.JNLPClassLoader.getPermissions(Unknown Source)
    at java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:206)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at desktop.DesktopProxySelector.<init>(DesktopProxySelector.java:24)     <- code smippet below
    at desktop.Main.main(Main.java:139)                                      <- code smippet below
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:724)

Las partes de código relevantes son:

Desktop.Main.main

/**
 * Main method, starts the application
 */
public static void main(String[] args) {
    System.setProperty("java.net.useSystemProxies", "true");

    //Logger.getLogger("httpclient.wire.header.level").setLevel(Level.FINEST);
    //Logger.getLogger("org.apache.commons.httpclient.level").setLevel(Level.FINEST);
    java.net.ProxySelector.setDefault(new DesktopProxySelector(java.net.ProxySelector.getDefault()));

(La última línea es la línea número 139)

desktop.DesktopProxySelector:

public class DesktopProxySelector extends ProxySelector {

    public  DesktopProxySelector(ProxySelector defaultSelector) {
    URI httpsUri = new CentralConfigurationService().getCentralLocation();

(La última línea es la línea número 24 donde ocurre la excepción)

¿Alguien puede darnos algunos consejos de pistas (o mejor una solución) para este nuevo comportamiento de Java causado por esta actualización "menor"?

Cuando ejecutamos la aplicación directamente desde el cli usando java -jar Desktop.jar, la aplicación ejecutará el archivo, por lo que el problema claramente tiene algo que ver con los cambios en el inicio de Java Web.

@trashgod: el error claramente tiene algo que ver con el cambio de permisos en 7u25, ya que la excepción NullPointerException se produce en com.sun.jnlp.JNLPClassLoader.getPermissions.

Solo para explicar lo que creo que sucede (soy colega de Wouter): desktop.Main crea una instancia de desktop.DesktopProxySelector (nuestra clase), desktop.DesktopProxySelector crea una instancia de desktop.configuration.CentralConfigurationService desktop.configuration.CentralConfigurationService crea una instancia de java.net.urm .

En la primera línea del inicio DesktopProxySelector donde se crea una instancia de CentralConfigurationService, el método getPermissions, llamado por JNLPClassLoader, lanza la NullPointerException. Entonces, algo está mal al cargar la clase CentralConfigurationService por java webstart y obtener los permisos para la clase. ¿Podría tener algo que ver con el hecho de que se crea una instancia de una clase de URI, lo que requiere permisos adicionales (se configura una conexión a un uri remoto)?