Community
Participate
Working Groups
Build Identifier: M20100909-0800 Eclipse is completely bricked (rendering artifacts and/or hang and many errors in error log) by pasting the unicode character U+200B (zero width space) in a Java editor. I will attach the stacktrace of the exception that is repeatedly put in the error log right after pasting this character in an Eclipse Java editor. Curiously, with a plain text file only the exception is spammed in the error log, but Eclipse seems to continue running normally. Major problems occur in the Java editor (and other language-specific editors). Reproducible: Always Steps to Reproduce: 1. Open eclipse & open a Java file 2. Paste the unicode character U+200B (zero width space) in the editor. Assuming bugzilla and the webserver support unicode properly I have included this invisible characters between the two x's: x​x 3. Observe that the error log is spammed full of ArrayIndexOutOfBoundsException; rendering of the editor window breaks and often (when pasting multiple times) rendering of other parts of Eclipse break too and/or it hangs indefinitely.
Created attachment 184146 [details] ArrayIndexOutOfBoundsException that appears in the error log
Details about the character copied from KCharSelect Character: Non-printable U+200B Name: ZERO WIDTH SPACE Annotations and Cross References Notes: commonly abbreviated ZWSP this character is intended for invisible word separation and for line break control; it has no width, but its presence between two characters does not prevent increased letter spacing in justification General Character Properties Block: General Punctuation Unicode category: Other, Format Various Useful Representations UTF-8: 0xE2 0x80 0x8B UTF-16: 0x200B C octal escaped UTF-8: \342\200\213 XML decimal entity: ​
I suspect this was fixed in Bug 308329/Bug 295513 Can you please verify if this problem happens on HEAD ?
I see the problem: public static void main(String[] args) { Display display = new Display(); TextLayout layout = new TextLayout(display); layout.setText("a\u200B"); layout.setAscent(20); layout.setDescent(6); layout.setSegments(new int[] {0, layout.getText().length()}); layout.getBounds(); }
I tested with the nightly eclipse-SDK-N20101202-2000-linux-gtk; issue still occurs with it. Build id: N20101202-2000
Fixed in HEAD Please verify the fix later this week using M4. Thank you.
Verified; works fine in M4.
*** Bug 350988 has been marked as a duplicate of this bug. ***
*** Bug 358970 has been marked as a duplicate of this bug. ***