-
Bug
-
Resolution: Fixed
-
P4
-
7
-
b25
-
x86
-
windows_7
-
Verified
FULL PRODUCT VERSION :
C:\FirstSpirit\trunk>java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
any os
EXTRA RELEVANT SYSTEM CONFIGURATION :
not relevant
A DESCRIPTION OF THE PROBLEM :
Under turkish locale creation of DataFlavour instances where mime type string contains capital letter "i" fails with IllegalArgumentException.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile and execute this two lines:
java.util.Locale.setDefault(new Locale("tr", "TR"));
new java.awt.datatransfer.DataFlavor("xxx/Its_a_bug; class=java.lang.String");
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Code should pass without exception
ACTUAL -
IllegalArgumentException, see below
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.IllegalArgumentException: failed to parse:xxx/Its_a_bug; class=java.lang.String
at java.awt.datatransfer.DataFlavor.<init>(DataFlavor.java:428)
at de.espirit.firstspirit.ui.gadgets.aspects.transfer.TestTransferTypeImpl.test_creating_transfer_type_with_turkish_locale(TestTransferTypeImpl.java:21)
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.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.datatransfer.DataFlavor;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
Locale.setDefault(new Locale("tr", "TR"));
new DataFlavor("xxx/Its_a_bug; class=java.lang.String");
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Do not use flavours with capital "i" letter.
C:\FirstSpirit\trunk>java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
any os
EXTRA RELEVANT SYSTEM CONFIGURATION :
not relevant
A DESCRIPTION OF THE PROBLEM :
Under turkish locale creation of DataFlavour instances where mime type string contains capital letter "i" fails with IllegalArgumentException.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile and execute this two lines:
java.util.Locale.setDefault(new Locale("tr", "TR"));
new java.awt.datatransfer.DataFlavor("xxx/Its_a_bug; class=java.lang.String");
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Code should pass without exception
ACTUAL -
IllegalArgumentException, see below
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.IllegalArgumentException: failed to parse:xxx/Its_a_bug; class=java.lang.String
at java.awt.datatransfer.DataFlavor.<init>(DataFlavor.java:428)
at de.espirit.firstspirit.ui.gadgets.aspects.transfer.TestTransferTypeImpl.test_creating_transfer_type_with_turkish_locale(TestTransferTypeImpl.java:21)
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.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.datatransfer.DataFlavor;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
Locale.setDefault(new Locale("tr", "TR"));
new DataFlavor("xxx/Its_a_bug; class=java.lang.String");
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Do not use flavours with capital "i" letter.