java.net.URI resuelve contra solo la cadena de consulta

Estoy tratando de construir URI usando el JDKjava.net.URI.
Quiero adjuntar a un objeto URI absoluto, una consulta (en String). Por ejemplo:

<code>URI base = new URI("http://example.com/something/more/long");
String queryString = "query=http://local:282/rand&action=aaaa";
URI query = new URI(null, null, null, queryString, null);
URI result = base.resolve(query);
</code>

La teoría (o lo que pienso) es que la resolución debería volver:

<code>http://example.com/something/more/long?query=http://local:282/rand&action=aaaa
</code>

Pero lo que tengo es:

<code> http://example.com/something/more/?query=http://local:282/rand&action=aaaa
</code>

Por qué#resolver() "come" el último camino? Si el nuevo URI (query) se construye como:

<code>URI query = new URI(null, null, base.getPath(), queryString, null);
</code>

Funciona bien.

Respuestas a la pregunta(2)

Su respuesta a la pregunta