Fix cast error on TypeStore (in POI)

git-svn-id: https://svn.apache.org/repos/asf/xmlbeans/trunk@1881686 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/xmlbeans/impl/store/Xobj.java b/src/main/java/org/apache/xmlbeans/impl/store/Xobj.java
index 5d642e7..7097dd2 100644
--- a/src/main/java/org/apache/xmlbeans/impl/store/Xobj.java
+++ b/src/main/java/org/apache/xmlbeans/impl/store/Xobj.java
@@ -1984,20 +1984,22 @@
         return null;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
-    public void find_all_element_users(QName name, List<TypeStoreUser> fillMeUp) {
+    public <T extends XmlObject> void find_all_element_users(QName name, List<T> fillMeUp) {
         for (Xobj x = _firstChild; x != null; x = x._nextSibling) {
             if (x.isElem() && x._name.equals(name)) {
-                fillMeUp.add(x.getUser());
+                fillMeUp.add((T)x.getUser());
             }
         }
     }
 
+    @SuppressWarnings("unchecked")
     @Override
-    public void find_all_element_users(QNameSet names, List<TypeStoreUser> fillMeUp) {
+    public <T extends XmlObject>  void find_all_element_users(QNameSet names, List<T> fillMeUp) {
         for (Xobj x = _firstChild; x != null; x = x._nextSibling) {
             if (x.isElem() && names.contains(x._name)) {
-                fillMeUp.add(x.getUser());
+                fillMeUp.add((T)x.getUser());
             }
         }
     }
@@ -2338,11 +2340,12 @@
 
             assert m == n;
 
-            List<TypeStoreUser> elementsUser = new ArrayList<>();
+            List<XmlObject> elementsUser = new ArrayList<>();
 
             find_all_element_users(elementName, elementsUser);
 
             List<Xobj> elements = elementsUser.stream()
+                .map(x -> (TypeStoreUser)x)
                 .map(TypeStoreUser::get_store)
                 .map(x -> (Xobj)x)
                 .collect(Collectors.toList());
diff --git a/src/main/java/org/apache/xmlbeans/impl/values/TypeStore.java b/src/main/java/org/apache/xmlbeans/impl/values/TypeStore.java
index df74428..ce67dbc 100644
--- a/src/main/java/org/apache/xmlbeans/impl/values/TypeStore.java
+++ b/src/main/java/org/apache/xmlbeans/impl/values/TypeStore.java
@@ -176,14 +176,14 @@
      * given name owned by this typestore, or the empty array of
      * TypeStoreUsers if none was found.
      */
-    void find_all_element_users(QName name, List<TypeStoreUser> fillMeUp);
+    <T extends XmlObject> void find_all_element_users(QName name, List<T> fillMeUp);
 
 
     /**
      * Returns all TypeStoreUsers corresponding to elements with one
      * of the names is the QNameSet.
      */
-    void find_all_element_users(QNameSet name, List<TypeStoreUser> fillMeUp);
+    <T extends XmlObject> void find_all_element_users(QNameSet name, List<T> fillMeUp);
 
     /**
      * Inserts a new element at the position that will make it