| diff -ur srcs/javax/xml/bind/JAXB.java srcs-patched/javax/xml/bind/JAXB.java |
| --- srcs/javax/xml/bind/JAXB.java 2018-09-12 06:26:24.000000000 +0200 |
| +++ srcs-patched/javax/xml/bind/JAXB.java 2019-04-16 17:17:25.118768524 +0200 |
| @@ -46,7 +46,6 @@ |
| import javax.xml.transform.Source; |
| import javax.xml.transform.stream.StreamResult; |
| import javax.xml.transform.stream.StreamSource; |
| -import java.beans.Introspector; |
| import java.io.File; |
| import java.io.IOException; |
| import java.io.InputStream; |
| @@ -593,7 +592,30 @@ |
| } |
| |
| private static String inferName(Class clazz) { |
| - return Introspector.decapitalize(clazz.getSimpleName()); |
| + String name = clazz.getSimpleName(); |
| + try { |
| + if (!Character.isUpperCase(name.charAt(0))) { |
| + return name; |
| + } else { |
| + try { |
| + if(Character.isUpperCase(name.charAt(1))) { |
| + return name; |
| + } else { |
| + char[] c = name.toCharArray(); |
| + c[0] = Character.toLowerCase(c[0]); |
| + return new String(c); |
| + } |
| + } catch(StringIndexOutOfBoundsException E) { |
| + char[] c = new char[1]; |
| + c[0] = Character.toLowerCase(name.charAt(0)); |
| + return new String(c); |
| + } |
| + } |
| + } catch(StringIndexOutOfBoundsException E) { |
| + return name; |
| + } catch(NullPointerException E) { |
| + return null; |
| + } |
| } |
| |
| /** |
| diff -ur srcs/module-info.java srcs-patched/module-info.java |
| --- srcs/module-info.java 2018-09-12 06:26:24.000000000 +0200 |
| +++ srcs-patched/module-info.java 2019-04-16 17:17:16.038792433 +0200 |
| @@ -42,7 +42,6 @@ |
| requires transitive java.activation; |
| requires transitive java.xml; |
| requires java.logging; |
| - requires java.desktop; |
| |
| exports javax.xml.bind; |
| exports javax.xml.bind.annotation; |