JDK-8035916 : [macosx] Problem with Thai text rendering on Mac OS.
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 7u60,8
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • CPU: ppc
  • Submitted: 2014-02-27
  • Updated: 2016-05-04
  • Resolved: 2016-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.
JDK 9
9Resolved
Related Reports
Duplicate :  
Description
Thai text can't be correctly rendered on Mac OS. Refer to the screenshot in attachment.

This does NOT happen when set logical font name "MonoSpaced", while Does when set the others or nothing by default.

Apple JDK 6 has the same behaviors. 

(In the documentation at http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html#jfc, Linux encodings and Peered AWT components are not supported in Thai writing system.)

Tested on Mac OS 10.9 + 8u5 b08 and 7u60 b10.

Comments
I think this is a duplicate of https://bugs.openjdk.java.net/browse/JDK-7162125 which was fixed in jdk9 b96. Please retest against b96 or later and report back ..
16-02-2016

I wrote a simple sample which shows day names in Thai locale but I am not able to reproduce the issue: --------------------------- import java.text.*; import java.util.*; import javax.swing.*; import javax.swing.SwingUtilities; import java.awt.BorderLayout; import java.awt.Font; public class ThaiTest { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { createAndShowGUI(); } }); } static List<String> getDays() { Date now = new Date(); SimpleDateFormat dateFormatter = new SimpleDateFormat("EEEE", getLocale()); List<String> days = new LinkedList<>(); Calendar calendar = Calendar.getInstance(); calendar.setTime(now); for (int i = 0; i < 7; i++) { calendar.add(Calendar.DAY_OF_MONTH, 1); days.add(dateFormatter.format(calendar.getTime())); } return days; } static Locale getLocale() { //return new Locale("th"); //return new Locale("th", "TH"); return new Locale("th", "TH", "TH"); } private static void createAndShowGUI() { JFrame frame = new JFrame("TabbedPaneDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); JList list = new JList(getDays().toArray()); //Font font = new Font("Serif", Font.BOLD, 12); Font trb = new Font("TimesRoman", Font.BOLD, 18); //Font font = new Font("MonoSpaced", Font.PLAIN, 20); list.setFont(trb); frame.add(list, BorderLayout.CENTER); frame.setVisible(true); } } ---------------------------
03-03-2014

Release team: Approved for deferral.
27-02-2014

please file defer request
27-02-2014

8-defer-request: Not a regression from JDK 7, not a JCK, not a P1. Not a stopper for JDK 8.
27-02-2014