--- old/src/share/classes/sun/text/bidi/BidiBase.java Mon Mar 28 15:39:00 2011 +++ new/src/share/classes/sun/text/bidi/BidiBase.java Mon Mar 28 15:38:59 2011 @@ -3457,13 +3457,18 @@ */ static final AttributedCharacterIterator.Attribute RUN_DIRECTION = getTextAttribute("RUN_DIRECTION"); - static final Boolean RUN_DIRECTION_LTR = - (Boolean)getStaticField(clazz, "RUN_DIRECTION_LTR"); static final AttributedCharacterIterator.Attribute NUMERIC_SHAPING = getTextAttribute("NUMERIC_SHAPING"); static final AttributedCharacterIterator.Attribute BIDI_EMBEDDING = getTextAttribute("BIDI_EMBEDDING"); + /** + * TextAttribute.RUN_DIRECTION_LTR + */ + static final Boolean RUN_DIRECTION_LTR = (clazz == null) ? + Boolean.FALSE : (Boolean)getStaticField(clazz, "RUN_DIRECTION_LTR"); + + private static Class getClass(String name) { try { return Class.forName(name, true, null); @@ -3473,18 +3478,11 @@ } private static Object getStaticField(Class clazz, String name) { - if (clazz == null) { - // fake attribute - return new AttributedCharacterIterator.Attribute(name) { }; - } else { - try { - Field f = clazz.getField(name); - return f.get(null); - } catch (NoSuchFieldException x) { - throw new AssertionError(x); - } catch (IllegalAccessException x) { - throw new AssertionError(x); - } + try { + Field f = clazz.getField(name); + return f.get(null); + } catch (NoSuchFieldException | IllegalAccessException x) { + throw new AssertionError(x); } } @@ -3491,7 +3489,12 @@ private static AttributedCharacterIterator.Attribute getTextAttribute(String name) { - return (AttributedCharacterIterator.Attribute)getStaticField(clazz, name); + if (clazz == null) { + // fake attribute + return new AttributedCharacterIterator.Attribute(name) { }; + } else { + return (AttributedCharacterIterator.Attribute)getStaticField(clazz, name); + } } }