Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 343245

Summary: [JUnit] DBCS4.1: JUnit can not import URL with CJK Extension B from clipboard
Product: [Eclipse Project] JDT Reporter: Masaihko Maedera <maedera>
Component: UIAssignee: Dani Megert <daniel_megert>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, emoffatt, pwebster, remy.suen
Version: 3.7   
Target Milestone: 3.7 M7   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
U20B9F_\ud842\udf9f.xml, a JUnit log file
none
Bug342345.zip
none
My filename appears with 2 characters none

Description Masaihko Maedera CLA 2011-04-19 04:22:46 EDT
Build Identifier: I20110412-2200

OS: SELS4
Eclipse SDK: 4.1.0
JRE: IBM JDK 1.6.0

JUnit view can not import URL with CJK Extension B from clipboard.
Eclipse hangs up.

Reproducible: Always

Steps to Reproduce:
1.Launch Eclipse and show JUnit view by [Window]->[Show View...]->[Others]->[Java]->[JUnit]
2.Open U20BOF_\ud842\udf9f.xml, attached to this report, in your browser.
3.Select your browser's URL field and copy it to clipboard
4.Click JUnit menu icon and select 'import URL from clipboard'.
5.Eclipse hangs up and it outputs the following error log.

!SESSION 2011-04-19 17:06:45.167 -----------------------------------------------
eclipse.buildId=I20110412-2200
java.fullversion=JRE 1.6.0 IBM J9 2.4 Linux x86-32 jvmxi3260sr9-20110203_74623 (JIT enabled, AOT enabled)
J9VM - 20110203_074623
JIT  - r9_20101028_17488ifx3
GC   - 20101027_AA
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=ja_JP
Command-line arguments:  -os linux -ws gtk -arch x86 -consolelog

!ENTRY org.eclipse.equinox.event 4 0 2011-04-19 17:07:58.964
!MESSAGE Exception while dispatching event org.osgi.service.event.Event [topic=org/eclipse/e4/ui/model/application/ApplicationElement/tags/REMOVE] to handler org.eclipse.e4.ui.services.internal.events.UIEventHandler@3ed83ed8
!STACK 0
java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon.restore(MinMaxAddon.java:345)
	at org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon$3.handleEvent(MinMaxAddon.java:221)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)
...
Comment 1 Masaihko Maedera CLA 2011-04-19 04:24:13 EDT
Created attachment 193552 [details]
U20B9F_\ud842\udf9f.xml, a JUnit log file
Comment 2 Masaihko Maedera CLA 2011-04-19 04:32:43 EDT
Created attachment 193553 [details]
Bug342345.zip

Sorry, I failed to attach the first file, 
named U20B9F_\ud842\udf9f.xml, with a raw CJK Extension B,
since Bugzilla cgi can not accept it.
I attached it containing Bug342345.zip again.
Comment 3 Dani Megert CLA 2011-04-19 06:14:19 EDT
Can you please attach the complete .log? Thanks.

>Eclipse hangs up.
What do you mean by that exactly?

What is the encoding of your OS and what is the default workspace encoding in your workspace?

I cannot reproduce it on my Windows machine as it doesn't support such file names.
Comment 4 Remy Suen CLA 2011-04-19 09:55:21 EDT
(In reply to comment #0)
> 5.Eclipse hangs up and it outputs the following error log.

If Eclipse is frozen then perhaps a thread dump would be helpful for diagnostic purposes.
Comment 5 Paul Webster CLA 2011-04-19 11:21:08 EDT
I wasn't able to unzip the zip correctly.  I got the XML and used a java app to copy it into a file via:

File home = new File("/opt/users/pwebster/");
String filename = "U20B9F_\ud842\udf9f.xml";
File outFile = new File(home, filename);

In eclipse, that shows up as
URL: file:///opt/users/pwebster/U20B9F_
Comment 6 Paul Webster CLA 2011-04-19 11:21:34 EDT
Created attachment 193593 [details]
My filename appears with 2 characters
Comment 7 Paul Webster CLA 2011-04-19 11:23:54 EDT
(In reply to comment #5)
> In eclipse, that shows up as
> URL: file:///opt/users/pwebster/U20B9F_

The rest of my comment was killed :-)

If I copy the URL (as seen in the image) from the console and paste it into JUnit it works.

If I copy it into firefox it opens the XML file.  If I copy it out of the firefox location bar, I get:

file:///opt/users/pwebster/U20B9F_%F0%A0%AE%9F.xml

If I paste that into JUnit, it just sits there, working, until you cancel the import.

I'll attach an image of my console just in case my pasts don't mean anything.

PW
Comment 8 Dani Megert CLA 2011-04-19 12:31:16 EDT
I can reproduce the problem now by importing the ZIP directly into Eclipse. There are 3 bugs here:

1. The NPE which I think is unrelated and which I'll ignore for now as we can't reproduce it:
   java.lang.NullPointerException
     at
org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon.restore(MinMaxAddon.java:345)


2. IllegalArgumentException when trying to read the contents via URL:
java.lang.IllegalArgumentException
	at sun.net.www.ParseUtil.decode(ParseUtil.java:185)
	at sun.net.www.protocol.file.Handler.openConnection(Handler.java:77)
	at sun.net.www.protocol.file.Handler.openConnection(Handler.java:67)
	at java.net.URL.openConnection(URL.java:946)
	at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
	at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at org.eclipse.jdt.internal.junit.model.JUnitModel$2.run(JUnitModel.java:430)


3. the dialog which never ends after the IAE until cancel is pressed.
Comment 9 Dani Megert CLA 2011-04-20 05:48:29 EDT
The second problem (IAE) is a bug in the JRE and not in Eclipse. This bug has been fixed in newer JREs (e.g. Oracle Java 7 JRE).

Added error handling for the IAE so that the dialog closes when the IAE occurs.
Fixed in HEAD (JUnitModel.java, rev. 1.22).
Available in builds >= N20110420-2000.