[libbluray-devel] FontFactory: fix exceptions to match GEM specification

hpi1 git at videolan.org
Sun Nov 23 13:33:41 CET 2014


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Sun Nov 23 14:32:42 2014 +0200| [dd1ce017e14e60888531e107ea85be2a93a07c70] | committer: hpi1

FontFactory: fix exceptions to match GEM specification

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=dd1ce017e14e60888531e107ea85be2a93a07c70
---

 src/libbluray/bdj/java/org/dvb/ui/FontFactory.java |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java b/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java
index 94fa2ef..426c065 100644
--- a/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java
+++ b/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java
@@ -21,7 +21,6 @@
 package org.dvb.ui;
 
 import java.awt.Font;
-import java.awt.FontFormatException;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
@@ -79,11 +78,11 @@ public class FontFactory {
                     logger.error("didn't load any fonts !");
                     throw ex;
                 }
-            } catch (FontFormatException ex) {
+            } catch (java.awt.FontFormatException ex) {
                 logger.error("Failed reading font " + data.getName() + " from " + data.getFileName() + ": " + ex);
                 if (i == fontIndexData.length - 1 && fonts.size() < 1) {
                     logger.error("didn't load any fonts !");
-                    throw ex;
+                    throw new FontFormatException();
                 }
             }
         }
@@ -111,9 +110,9 @@ public class FontFactory {
         } catch (IOException ex) {
             logger.error("Failed reading font from " + u.getPath() + ": " + ex);
             throw ex;
-        } catch (FontFormatException ex) {
+        } catch (java.awt.FontFormatException ex) {
             logger.error("Failed reading font from " + u.getPath() + ": " + ex);
-            throw ex;
+            throw new FontFormatException();
         } finally {
             if (inStream != null) {
                 inStream.close();
@@ -136,6 +135,10 @@ public class FontFactory {
             throws FontNotAvailableException, FontFormatException, IOException {
         logger.info("Creating font: " + name + " " + style + " " + size);
 
+        if (style < 0 || size <= 0 || (style & ~3) != 0) {
+            throw new IllegalArgumentException();
+        }
+
         /* Factory created only for single font ? */
         if (urlFont != null) {
             if (name.equals(urlFont.getName()) && style == urlFont.getStyle()) {



More information about the libbluray-devel mailing list