Java - Registrando manipuladores de protocolo de URL personalizados

Tentei registrar um manipulador de URL personalizado para um protocolo de caminho de classe, conforme descrito em outro fio. Aqui está o código:

package com.mycompany;

import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import com.mycompany.protocol.classpath.Handler;

public class ParserTest {
    @Test
    public void testParsing() throws MalformedURLException {      
        System.out.println(System.getProperty("java.protocol.handler.pkgs"));

        //URL url = new URL(null, "classpath://com.mycompany/hello-world.xml", new Handler(ClassLoader.getSystemClassLoader()));
        URL url = new URL("classpath://com.mycompany/hello-world.xml");
    }
}

O caso de teste possui os seguintes argumentos da JVM:

-Djava.protocol.handler.pkgs=com.mycompany.protocol

OSystem.out.println linha produz corretamentecom.mycompany.protocol, então a propriedade está sendo definida. No entanto, parece que não está sendo efetivado, porque a chamada acima gera umjava.net.MalformedURLException: unknown protocol: classpath exceção.

Se eu fornecer o manipulador explicitamente, como na linha comentada, está tudo bem. No entanto, prefiro não fornecer explicitamente - isso deve ser feito automaticament

O que estou fazendo errado

questionAnswers(2)

yourAnswerToTheQuestion