spotbug fixes

git-svn-id: https://svn.apache.org/repos/asf/xmlbeans/trunk@1881199 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/xmlbeans/impl/regex/RangeToken.java b/src/main/java/org/apache/xmlbeans/impl/regex/RangeToken.java
index b78ab46..e1d2f97 100644
--- a/src/main/java/org/apache/xmlbeans/impl/regex/RangeToken.java
+++ b/src/main/java/org/apache/xmlbeans/impl/regex/RangeToken.java
@@ -121,6 +121,7 @@
     /**
      * this.ranges is sorted.
      */
+    @SuppressWarnings("ConstantConditions")
     protected void compactRanges() {
         boolean DEBUG = false;
         if (this.ranges == null || this.ranges.length <= 2) {
@@ -489,17 +490,6 @@
         return lowers;
     }
 
-    void dumpRanges() {
-        System.err.print("RANGE: ");
-        if (this.ranges == null) {
-            System.err.println(" NULL");
-        }
-        for (int i = 0; i < this.ranges.length; i += 2) {
-            System.err.print("[" + this.ranges[i] + "," + this.ranges[i + 1] + "] ");
-        }
-        System.err.println();
-    }
-
     boolean match(int ch) {
         if (this.map == null) {
             this.createMap();
@@ -586,7 +576,7 @@
                         sb.append(escapeCharInCharClass(this.ranges[i]));
                     } else {
                         sb.append(escapeCharInCharClass(this.ranges[i]));
-                        sb.append((char) '-');
+                        sb.append('-');
                         sb.append(escapeCharInCharClass(this.ranges[i + 1]));
                     }
                 }
diff --git a/src/main/java/org/apache/xmlbeans/impl/repackage/Repackage.java b/src/main/java/org/apache/xmlbeans/impl/repackage/Repackage.java
index 2bb8a1f..25de508 100644
--- a/src/main/java/org/apache/xmlbeans/impl/repackage/Repackage.java
+++ b/src/main/java/org/apache/xmlbeans/impl/repackage/Repackage.java
@@ -69,6 +69,7 @@
 
         _repackager = new Repackager(repackageSpec);
 
+        //noinspection ConstantConditions
         if (sourceDir == null || targetDir == null) {
             _sourceBase = _targetBase = null;
         } else {
@@ -333,15 +334,11 @@
     }
 
     StringBuffer readInputStream(InputStream is) throws IOException {
-        Reader r = new InputStreamReader(is);
-        StringWriter w = new StringWriter();
-
-        copy(r, w);
-
-        w.close();
-        r.close();
-
-        return w.getBuffer();
+        try (Reader r = new InputStreamReader(is, StandardCharsets.ISO_8859_1);
+            StringWriter w = new StringWriter()) {
+            copy(r, w);
+            return w.getBuffer();
+        }
     }
 
     public static void copyFile(File from, File to) throws IOException {
diff --git a/src/main/java/org/apache/xmlbeans/impl/richParser/XMLStreamReaderExtImpl.java b/src/main/java/org/apache/xmlbeans/impl/richParser/XMLStreamReaderExtImpl.java
index 1bd4d4f..98071f0 100644
--- a/src/main/java/org/apache/xmlbeans/impl/richParser/XMLStreamReaderExtImpl.java
+++ b/src/main/java/org/apache/xmlbeans/impl/richParser/XMLStreamReaderExtImpl.java
@@ -182,7 +182,7 @@
         throws XMLStreamException, InvalidLexicalValueException {
         _charSeq.reload(CharSeqTrimWS.XMLWHITESPACE_TRIM);
         String text = _charSeq.toString();
-        byte[] buf = Base64.getDecoder().decode(text.getBytes());
+        byte[] buf = Base64.getDecoder().decode(text.getBytes(StandardCharsets.ISO_8859_1));
         if (buf != null) {
             return new ByteArrayInputStream(buf);
         } else {
@@ -332,7 +332,7 @@
 
     public InputStream getAttributeBase64Value(int index) throws XMLStreamException {
         String text = _charSeq.reloadAtt(index, CharSeqTrimWS.XMLWHITESPACE_TRIM).toString();
-        byte[] buf = Base64.getDecoder().decode(text.getBytes());
+        byte[] buf = Base64.getDecoder().decode(text.getBytes(StandardCharsets.ISO_8859_1));
         if (buf != null) {
             return new ByteArrayInputStream(buf);
         } else {
@@ -486,7 +486,7 @@
     public InputStream getAttributeBase64Value(String uri, String local) throws XMLStreamException {
         CharSequence cs = _charSeq.reloadAtt(uri, local, CharSeqTrimWS.XMLWHITESPACE_TRIM);
         String text = cs.toString();
-        byte[] buf = Base64.getDecoder().decode(text.getBytes());
+        byte[] buf = Base64.getDecoder().decode(text.getBytes(StandardCharsets.ISO_8859_1));
         if (buf != null) {
             return new ByteArrayInputStream(buf);
         } else {
diff --git a/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java b/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java
index b3ed068..247e353 100644
--- a/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java
+++ b/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java
@@ -82,9 +82,9 @@
     private final Map<String, SchemaContainer> _containers = new LinkedHashMap<>();
     private SchemaDependencies _dependencies;
 
-    private Map _redefinedGlobalTypes = new LinkedHashMap();
-    private Map _redefinedModelGroups = new LinkedHashMap();
-    private Map _redefinedAttributeGroups = new LinkedHashMap();
+    private final Map<SchemaTypeImpl,SchemaTypeImpl> _redefinedGlobalTypes = new LinkedHashMap<>();
+    private final Map<SchemaModelGroupImpl,SchemaModelGroupImpl>  _redefinedModelGroups = new LinkedHashMap<>();
+    private final Map<SchemaAttributeGroupImpl,SchemaAttributeGroupImpl>  _redefinedAttributeGroups = new LinkedHashMap<>();
 
     private final Map<QName, SchemaType> _globalTypes = new LinkedHashMap<>();
     private final Map<QName, SchemaGlobalElement> _globalElements = new LinkedHashMap<>();
@@ -156,23 +156,9 @@
 
     private void addContainer(SchemaContainer container) {
         _containers.put(container.getNamespace(), container);
-        List redefModelGroups = container.redefinedModelGroups();
-        for (int i = 0; i < redefModelGroups.size(); i++) {
-            QName name = ((SchemaModelGroup) redefModelGroups.get(i)).getName();
-            _redefinedModelGroups.put(name, redefModelGroups.get(i));
-        }
 
-        List redefAttrGroups = container.redefinedAttributeGroups();
-        for (int i = 0; i < redefAttrGroups.size(); i++) {
-            QName name = ((SchemaAttributeGroup) redefAttrGroups.get(i)).getName();
-            _redefinedAttributeGroups.put(name, redefAttrGroups.get(i));
-        }
-
-        List redefTypes = container.redefinedGlobalTypes();
-        for (int i = 0; i < redefTypes.size(); i++) {
-            QName name = ((SchemaType) redefTypes.get(i)).getName();
-            _redefinedGlobalTypes.put(name, redefTypes.get(i));
-        }
+        // container.redefinedModelGroups() / .redefinedAttributeGroups() / .redefinedGlobalTypes() are always empty
+        // no need to copy them over to _redefinedModelGroups / _redefinedAttributeGroups / _redefinedGlobalTypes
 
         container.globalElements().forEach(g -> _globalElements.put(g.getName(), g));
         container.globalAttributes().forEach(g -> _globalAttributes.put(g.getName(), g));
@@ -280,7 +266,7 @@
      */
     public void warning(String code, Object[] args, XmlObject loc) {
         // it's OK for XMLSchema.xsd itself to have reserved type names
-        if (code == XmlErrorCodes.RESERVED_TYPE_NAME &&
+        if (XmlErrorCodes.RESERVED_TYPE_NAME.equals(code) &&
             loc.documentProperties().getSourceName() != null &&
             loc.documentProperties().getSourceName().indexOf("XMLSchema.xsd") > 0) {
             return;
@@ -669,7 +655,7 @@
         QName redefinedName = redefinedBy.getName();
         name = compatName(name, chameleonNamespace);
         if (name.equals(redefinedName)) {
-            return (SchemaTypeImpl) _redefinedGlobalTypes.get(redefinedBy);
+            return _redefinedGlobalTypes.get(redefinedBy);
             // BUGBUG: should also link against _importingLoader.findRedefinedType
         }
         SchemaTypeImpl result = (SchemaTypeImpl) _globalTypes.get(name);
@@ -691,11 +677,11 @@
                     if (!ignoreMdef(name)) {
                         if (_mdefAll) {
                             warning(XmlErrorCodes.SCHEMA_PROPERTIES$DUPLICATE,
-                                new Object[]{"global type", QNameHelper.pretty(name), ((SchemaType) _redefinedGlobalTypes.get(redefined)).getSourceName()},
+                                new Object[]{"global type", QNameHelper.pretty(name), _redefinedGlobalTypes.get(redefined).getSourceName()},
                                 type.getParseObject());
                         } else {
                             error(XmlErrorCodes.SCHEMA_PROPERTIES$DUPLICATE,
-                                new Object[]{"global type", QNameHelper.pretty(name), ((SchemaType) _redefinedGlobalTypes.get(redefined)).getSourceName()},
+                                new Object[]{"global type", QNameHelper.pretty(name), _redefinedGlobalTypes.get(redefined).getSourceName()},
                                 type.getParseObject());
                         }
                     }
@@ -901,7 +887,7 @@
         QName redefinitionFor = redefinedBy.getName();
         name = compatName(name, chameleonNamespace);
         if (name.equals(redefinitionFor)) {
-            return (SchemaAttributeGroupImpl) _redefinedAttributeGroups.get(redefinedBy);
+            return _redefinedAttributeGroups.get(redefinedBy);
             // BUGBUG: should also link against _importingLoader.findRedefinedAttributeGroup
         }
         SchemaAttributeGroupImpl result = (SchemaAttributeGroupImpl) _attributeGroups.get(name);
@@ -921,11 +907,11 @@
                     if (!ignoreMdef(name)) {
                         if (_mdefAll) {
                             warning(XmlErrorCodes.SCHEMA_PROPERTIES$DUPLICATE,
-                                new Object[]{"attribute group", QNameHelper.pretty(name), ((SchemaComponent) _redefinedAttributeGroups.get(redefined)).getSourceName()},
+                                new Object[]{"attribute group", QNameHelper.pretty(name), _redefinedAttributeGroups.get(redefined).getSourceName()},
                                 attributeGroup.getParseObject());
                         } else {
                             error(XmlErrorCodes.SCHEMA_PROPERTIES$DUPLICATE,
-                                new Object[]{"attribute group", QNameHelper.pretty(name), ((SchemaComponent) _redefinedAttributeGroups.get(redefined)).getSourceName()},
+                                new Object[]{"attribute group", QNameHelper.pretty(name), _redefinedAttributeGroups.get(redefined).getSourceName()},
                                 attributeGroup.getParseObject());
                         }
                     }
@@ -960,7 +946,7 @@
     }
 
     SchemaAttributeGroup[] redefinedAttributeGroups() {
-        return (SchemaAttributeGroup[]) _redefinedAttributeGroups.values().toArray(new SchemaAttributeGroup[0]);
+        return _redefinedAttributeGroups.values().toArray(new SchemaAttributeGroup[0]);
     }
 
     /* MODEL GROUPS ===================================================*/
@@ -983,7 +969,7 @@
         QName redefinitionFor = redefinedBy.getName();
         name = compatName(name, chameleonNamespace);
         if (name.equals(redefinitionFor)) {
-            return (SchemaModelGroupImpl) _redefinedModelGroups.get(redefinedBy);
+            return _redefinedModelGroups.get(redefinedBy);
             // BUGBUG: should also link against _importingLoader.findRedefinedModelGroup
         }
         SchemaModelGroupImpl result = (SchemaModelGroupImpl) _modelGroups.get(name);
@@ -1042,7 +1028,7 @@
     }
 
     SchemaModelGroup[] redefinedModelGroups() {
-        return (SchemaModelGroup[]) _redefinedModelGroups.values().toArray(new SchemaModelGroup[0]);
+        return _redefinedModelGroups.values().toArray(new SchemaModelGroup[0]);
     }
 
     /* IDENTITY CONSTRAINTS ===========================================*/
@@ -1165,7 +1151,8 @@
         StscStack stscStack = tl_stscStack.get();
         stscStack.pop();
         if (stscStack.stack.size() == 0) {
-            tl_stscStack.set(null);            // this is required to release all the references in this classloader
+            // this is required to release all the references in this classloader
+            tl_stscStack.remove();
         }
         // which will enable class unloading and avoid OOM in PermGen
     }
@@ -1190,7 +1177,7 @@
 
         try {
             XmlStringImpl i = new XmlStringImpl();
-            i.set(str);
+            i.setStringValue(str);
             i.setImmutable();
             return new XmlValueRef(i);
         } catch (XmlValueOutOfRangeException e) {
@@ -1350,7 +1337,7 @@
                 } else {
                     uri = relative.toString();
                 }
-            } catch (URISyntaxException e) {
+            } catch (URISyntaxException ignored) {
             }
         }