-
Bug
-
Resolution: Unresolved
-
P3
-
None
-
6u3
-
Cause Known
-
x86
-
linux
OPERATING SYSTEM(S):
--------------------
Red Hat Enterprise Linux 5 (Japanese Environment)
FULL JDK VERSION(S):
-------------------
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
DESCRIPTION:
------------
Desktop API does not work as expected for file scheme URI if URI has non-ASCII character.
It seems non-ASCII character is not escaped properly.
Since gnome-open command works fine, Desktop API should work.
Steps to Recreate:
(Please run following commands on Japanese environment)
1. Compile and run attached testcase
$ cd /tmp
$ javac DesktopOpenTest.java
$ export LC_MESSAGES=C
$ echo "test" > `echo -e "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a.txt"`
$ gedit "file:$PWD/%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a.txt" &
$ java DesktopOpenTest "file:$PWD/%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a.txt"
2. Following message is displayed on console
file:/tmp/XXXXX.txt: malformed fuke bane or URI <== PROBLEM
(Note: XXXXX is Japanese Characters (AIUEO))
=====================================================================
import java.awt.*;
import java.io.*;
import java.net.*;
class DesktopOpenTest {
DesktopOpenTest(String uri) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
System.out.println("Open "+uri+" ...");
try {
desktop.open(new File(new URI(uri)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
for(String uri: args) new DesktopOpenTest(uri);
}
}
--------------------
Red Hat Enterprise Linux 5 (Japanese Environment)
FULL JDK VERSION(S):
-------------------
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
DESCRIPTION:
------------
Desktop API does not work as expected for file scheme URI if URI has non-ASCII character.
It seems non-ASCII character is not escaped properly.
Since gnome-open command works fine, Desktop API should work.
Steps to Recreate:
(Please run following commands on Japanese environment)
1. Compile and run attached testcase
$ cd /tmp
$ javac DesktopOpenTest.java
$ export LC_MESSAGES=C
$ echo "test" > `echo -e "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a.txt"`
$ gedit "file:$PWD/%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a.txt" &
$ java DesktopOpenTest "file:$PWD/%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a.txt"
2. Following message is displayed on console
file:/tmp/XXXXX.txt: malformed fuke bane or URI <== PROBLEM
(Note: XXXXX is Japanese Characters (AIUEO))
=====================================================================
import java.awt.*;
import java.io.*;
import java.net.*;
class DesktopOpenTest {
DesktopOpenTest(String uri) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
System.out.println("Open "+uri+" ...");
try {
desktop.open(new File(new URI(uri)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
for(String uri: args) new DesktopOpenTest(uri);
}
}