Package: libgcj9-0
Version: 4.3.2-2
Severity: normal
Hi,
import java.net.URI;
public class Test
{
public static void main(String arg[])
throws Exception
{
String a = "http://example.org/path";
String b = "http://example.org/path?q=query";
URI ua = new URI(a);
URI ub = new URI(b);
System.out.println( ua.equals(ub) );
}
}
% javac Test.java && java Test
Exception in thread "main" java.lang.NullPointerException
at java.net.URI.equals(URI.java:1215)
at Test.main(Test.java:14)
I think the problem is in these lines:
else if (!opaqueThis && !opaqueObj)
{
boolean common = rawPath.equalsIgnoreCase(uriObj.getRawPath())
-> && ((rawQuery == null && uriObj.getRawQuery() == null)
-> || rawQuery.equalsIgnoreCase(uriObj.getRawQuery()));
if (rawAuthority == null && uriObj.getRawAuthority() == null)
return common;
In ua.rawQuery is null but ub.rawQuery is not, so the expression in the
brace evaluates to false and the righthand side gets evaluated with
dereferences ua.rawQuery and this causes the NullPointerException. I
think you have to write something like this:
&& (rawQuery == uriObj.getRawQuery()
|| (rawQuery != null
&& rawQuery.equalsIgnoreCase(uriObj.getRawQuery())));
Bye, Jörg.
-- System Information:
Debian Release: unstable/experimental
APT prefers unstable
APT policy: (900, 'unstable'), (700, 'experimental')
Architecture: powerpc (ppc)
Kernel: Linux 2.6.28-rc7
Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to de_DE.UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libgcj9-0 depends on:
ii gcj-4.3-base 4.3.2-2 The GNU Compiler Collection (gcj b
ii libasound2 1.0.16-2 ALSA library
ii libc6 2.7-16 GNU C Library: Shared libraries
ii libgcc1 1:4.3.2-1 GCC support library
ii libgcj-common 1:4.3.2-2 Java runtime library (common files
ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime
Versions of packages libgcj9-0 recommends:
ii libgcj9-0-awt 4.3.2-2 AWT peer runtime libraries for use
ii libgcj9-jar 4.3.2-2 Java runtime library for use with
Versions of packages libgcj9-0 suggests:
ii libgcj9-dbg 4.3.2-2 Debugging symbols for libraries pr
-- no debconf information
Attachment:
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP