Bug #43624 Latest MEM displays garbled characters for japanese caption of graph on OpenSuSE
Submitted: 13 Mar 2009 9:11 Modified: 21 Aug 2009 9:19
Reporter: Meiji KIMURA Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Localization Severity:S3 (Non-critical)
Version:2.0.4 OS:Linux (OpenSuSE)
Assigned to: Sloan Childers CPU Architecture:Any

[13 Mar 2009 9:11] Meiji KIMURA
Description:
The problem is similar to Bug#43492.

I installed latest MEM(2.0.4) into the OpenSuSE 11.1, japanese caption of graph 
become garbled characters (white squares appears instead of japanese characters).

I looked into fontconfig.SuSE.properties.src, there is no description for japanese font! So MEM cannot display japanese properly.

How to repeat:
(1) Install OpenSuSE11.1 onto a PC.
(2) Install MEM2.0.4 on it.
(3) Try to use Japanese UI.

Suggested fix:
[Workaround] 

I cannot find it.

[Suggested fix]

Add information for Japanese \font like RedHat, Sun, Turbo.
[25 Mar 2009 23:26] Sloan Childers
Waiting on support team to provide data from Java test program which will give development a list of fonts that are installed on the problem machines that are available to Java.
[27 Mar 2009 4:48] Meiji KIMURA
Sloan,

OpenSuSE 11.x don't have java environment in default settings, so java -version returns like this,

meiji@linux-mn3n:~/Desktop> java -version
bash: java: command not found

I have to install java environment for further testing?
[30 Mar 2009 15:31] Sloan Childers
- added a user override property called "graph.font" so a user can 
        specify a graph font override for problematic systems
      
      INSERT INTO map_entries VALUES (1,'Helvetica','graph.font');
      
      - if no user override is set, our default is still Arial
      - if no user override is set and Arial is not present on the system,
        use the JFreeChart default of SansSerif
[21 Apr 2009 6:02] Meiji KIMURA
[Workaround for OpenSUSE 11]

I looked into fontconfig.SuSE.properties.src in detail, there is no description for japanese font (only for latin-1).

Under OpenSUSE environment, there are japanese font setting at $JAVA_HOME/fontconfig.*, so copy all files to the directory of MEM. It became to display japanese fonts.

/opt/mysql/enterprise/monitor/java/lib
-rw-rw-r-- 1 root root 1973 Oct 1 2008 fontconfig.properties.src
-rw-rw-r-- 1 root root 1678 Oct 1 2008 fontconfig.bfc
-rw-rw-r-- 1 root root 9233 Oct 1 2008 fontconfig.Turbo.properties.src
-rw-rw-r-- 1 root root 4668 Oct 1 2008 fontconfig.Turbo.bfc
-rw-rw-r-- 1 root root 8679 Oct 1 2008 fontconfig.Sun.properties.src
-rw-rw-r-- 1 root root 4644 Oct 1 2008 fontconfig.Sun.bfc
-rw-rw-r-- 1 root root 1972 Oct 1 2008 fontconfig.SuSE.properties.src
-rw-rw-r-- 1 root root 1678 Oct 1 2008 fontconfig.SuSE.bfc
-rw-rw-r-- 1 root root 8878 Oct 1 2008 fontconfig.RedHat.properties.src
-rw-rw-r-- 1 root root 4532 Oct 1 2008 fontconfig.RedHat.bfc
-rw-rw-r-- 1 root root 8816 Oct 1 2008 fontconfig.RedHat.4.properties.src
-rw-rw-r-- 1 root root 4494 Oct 1 2008 fontconfig.RedHat.4.bfc
-rw-rw-r-- 1 root root 11040 Oct 1 2008 fontconfig.RedHat.3.properties.src
-rw-rw-r-- 1 root root 5760 Oct 1 2008 fontconfig.RedHat.3.bfc
-rw-rw-r-- 1 root root 9060 Oct 1 2008 fontconfig.RedHat.2.1.properties.src
-rw-rw-r-- 1 root root 5438 Oct 1 2008 fontconfig.RedHat.2.1.bfc

# mkdir back
# mv fontconfig.* back
# cp /usr/lib64/jvm/jre/lib/fontconfig.* .
# ls -la
-rw-r--r-- 1 root root 5438 Apr 7 16:31 fontconfig.RedHat.2.1.bfc
-rw-r--r-- 1 root root 9060 Apr 7 16:31 fontconfig.RedHat.2.1.properties.src
-rw-r--r-- 1 root root 5760 Apr 7 16:31 fontconfig.RedHat.3.bfc
-rw-r--r-- 1 root root 11040 Apr 7 16:31 fontconfig.RedHat.3.properties.src
-rw-r--r-- 1 root root 4494 Apr 7 16:31 fontconfig.RedHat.4.bfc
-rw-r--r-- 1 root root 8816 Apr 7 16:31 fontconfig.RedHat.4.properties.src
-rw-r--r-- 1 root root 4532 Apr 7 16:31 fontconfig.RedHat.bfc
-rw-r--r-- 1 root root 8878 Apr 7 16:31 fontconfig.RedHat.properties.src
-rw-r--r-- 1 root root 1678 Apr 7 16:31 fontconfig.SuSE.bfc
-rw-r--r-- 1 root root 12732 Apr 7 16:31 fontconfig.SuSE.properties
-rw-r--r-- 1 root root 1972 Apr 7 16:31 fontconfig.SuSE.properties.src
-rw-r--r-- 1 root root 4644 Apr 7 16:31 fontconfig.Sun.bfc
-rw-r--r-- 1 root root 8679 Apr 7 16:31 fontconfig.Sun.properties.src
-rw-r--r-- 1 root root 4668 Apr 7 16:31 fontconfig.Turbo.bfc
-rw-r--r-- 1 root root 9233 Apr 7 16:31 fontconfig.Turbo.properties.src
-rw-r--r-- 1 root root 1678 Apr 7 16:31 fontconfig.bfc
-rw-r--r-- 1 root root 1973 Apr 7 16:31 fontconfig.properties.src

I suppose it can work as a workaround for current MEM.
[8 Jun 2009 15:22] Sloan Childers
[30 Mar 17:31] Sloan Childers

- added a user override property called "graph.font" so a user can 
        specify a graph font override for problematic systems
      
      INSERT INTO map_entries VALUES (1,'Helvetica','graph.font');
      
      - if no user override is set, our default is still Arial
      - if no user override is set and Arial is not present on the system,
        use the JFreeChart default of SansSerif

Does this work?  If so let's move this out of QA testing to documenting.  (There is a customer waiting for a solution.)
[10 Jun 2009 20:17] Sloan Childers
Moving to documenting so customers can have the workaround documented for the upcoming 2.1 release.

- added a user override property called "graph.font" so a user can 
        specify a graph font override for problematic systems
      
      INSERT INTO map_entries VALUES (1,'Helvetica','graph.font');
      
      - if no user override is set, our default is still Arial
      - if no user override is set and Arial is not present on the system,
        use the JFreeChart default of SansSerif
[21 Aug 2009 9:19] MC Brown
I've added a note and instructions to the limitation section of the reference appendix.
[8 Sep 2009 6:45] Meiji KIMURA
Open SuSE 11.1 and MEM 2.0.6 cannot display japanese font properly.

I'll try to do a workaround....
[10 Sep 2009 22:05] Meiji KIMURA
A workaround specifying "graph.font" don't work well....

Now I test on Open SuSE 11.1, it has a japanese font like these,

meiji@linux-823e:/usr/share/fonts/truetype> ls ipa*
ipag.ttf  ipagp.ttf  ipagui.ttf  ipam.ttf  ipamp.ttf
meiji@linux-823e:/usr/share/fonts/truetype> ls みかちゃん*
みかちゃん-p.ttf  みかちゃん-pb.ttf  みかちゃん-ps.ttf  みかちゃん.ttf
meiji@linux-823e:/usr/share/fonts/truetype> 

I inserted to (1, 'ipag', 'graph.font'), but the situation don't change.

So I try to use the old workaround.

I installed JDK 1.6.0, ant it has font files for SuSE like these,

(1) fontconfig.SuSE.bfc                   
(2) fontconfig.SuSE.properties            
(3) fontconfig.SuSE.properties.src        

MEM 2.0.6 has the same files (1),(3), but don't have (2).
# I use a diff tools for compare (1),(3). their content are the same between JDK and MEM.

So I copy (2) on install_dir/mysql/enterprise/monitor/java/lib, it works well.
[10 Sep 2009 22:07] Meiji KIMURA
(2) file for workaround

Attachment: fontconfig.SuSE.properties (application/octet-stream, text), 5.82 KiB.