JDK-5035993 : REG: Text not rendered properly on vertical progressbar for some locale strings
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 5.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2004-04-22
  • Updated: 2004-09-07
  • Resolved: 2004-05-04
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other JDK 6
1.4.2_05 05Fixed 6Fixed
Text is not rendered properly for vertical JProgressBar on some locales. The text is not drawn in vertical line. Its slanting. Refer to attached screen shot.
Regression introduced in b45.

Compile and Run JProgressBarTest.java

This behavior is noted for Korean, Chinese and Thai.

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.2_05 mustang tiger-beta2 FIXED IN: 1.4.2_05 mustang tiger-beta2 INTEGRATED IN: 1.4.2_05 mustang tiger-b50 tiger-beta2

EVALUATION Wow, slanted text! I don't believe we could do this in Swing even if we tried ;) Re-assigning to Java 2D. ###@###.### 2004-04-22 ================================== I can reproduce this on Solaris 9. It looks like its caused by the fix for 4458472 ###@###.### 2004-04-22 ============================= Name: inR10103 Date: 04/23/2004 This is regression introduced in the fix for 4458472. The problem is reproducible if bitmap bolding is applied and bitmap is widened during bolding process. In such case we correct xAdvanceWidth16x16 to reflect width change but for rotated case this logic is not correct and we might need to change yAdvance instead. In this particular test for vertical progress bar we all glyphs has horisontal advance equal to one pixel (correct supposed to be 0). String layout logic (actually similar effect is achivable with Graphics.drawString()) accumulate this error and cause this funny effect. For quadrant rotations this problem is easy to fix (we should not increment zero advances and pay attention to advance sign) but proper support for arbitrary rotations might be more complicated. ======================================================================