Repository: commons-collections
Updated Branches:
  refs/heads/master ea305b085 -> 0dad34216


[COLLECTIONS-692] Replace use of deprecated Class#newInstance() #49.

Project: http://git-wip-us.apache.org/repos/asf/commons-collections/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/commons-collections/commit/b1c45ac6
Tree: http://git-wip-us.apache.org/repos/asf/commons-collections/tree/b1c45ac6
Diff: http://git-wip-us.apache.org/repos/asf/commons-collections/diff/b1c45ac6

Branch: refs/heads/master
Commit: b1c45ac691d46a8c609f2534d2adfa59c0599527
Parents: 4bcd8c1
Author: Gary Gregory <ggreg...@apache.org>
Authored: Fri Jul 27 08:32:13 2018 -0600
Committer: Gary Gregory <ggreg...@apache.org>
Committed: Fri Jul 27 08:32:13 2018 -0600

----------------------------------------------------------------------
 src/changes/changes.xml                                |  3 +++
 .../commons/collections4/list/SetUniqueList.java       | 13 +++++++------
 .../apache/commons/collections4/map/MultiValueMap.java |  2 +-
 3 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-collections/blob/b1c45ac6/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index efa2c8d..a837d17 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -27,6 +27,9 @@
     <action issue="COLLECTIONS-689" dev="ggregory" type="update" 
due-to="Richard Walker">
       Link to Javadoc API broken.
     </action>
+    <action issue="COLLECTIONS-692" dev="ggregory" type="update" due-to="Gary 
Gregory, ">
+      Replace use of deprecated Class#newInstance() #49.
+    </action>
   </release>
   <release version="4.2" date="2018-07-11" description="Update from Java 6 to 
Java 7, bug fixes, and small changes.">
     <action issue="COLLECTIONS-681" dev="kinow" type="add" due-to="Stephan 
Fuhrmann">

http://git-wip-us.apache.org/repos/asf/commons-collections/blob/b1c45ac6/src/main/java/org/apache/commons/collections4/list/SetUniqueList.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/collections4/list/SetUniqueList.java 
b/src/main/java/org/apache/commons/collections4/list/SetUniqueList.java
index 8aa0815..3227e43 100644
--- a/src/main/java/org/apache/commons/collections4/list/SetUniqueList.java
+++ b/src/main/java/org/apache/commons/collections4/list/SetUniqueList.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.collections4.list;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -327,21 +329,20 @@ public class SetUniqueList<E> extends 
AbstractSerializableListDecorator<E> {
      * @return a new {@link Set} populated with all elements of the provided
      *   {@link List}
      */
-    @SuppressWarnings("unchecked")
     protected Set<E> createSetBasedOnList(final Set<E> set, final List<E> 
list) {
         Set<E> subSet;
         if (set.getClass().equals(HashSet.class)) {
             subSet = new HashSet<>(list.size());
         } else {
             try {
-                subSet = set.getClass().newInstance();
-            } catch (final InstantiationException ie) {
-                subSet = new HashSet<>();
-            } catch (final IllegalAccessException iae) {
+                subSet = 
set.getClass().getDeclaredConstructor(set.getClass()).newInstance(set);
+            } catch (final InstantiationException
+                    | IllegalAccessException
+                    | InvocationTargetException
+                    | NoSuchMethodException ie) {
                 subSet = new HashSet<>();
             }
         }
-        subSet.addAll(list);
         return subSet;
     }
 

http://git-wip-us.apache.org/repos/asf/commons-collections/blob/b1c45ac6/src/main/java/org/apache/commons/collections4/map/MultiValueMap.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/collections4/map/MultiValueMap.java 
b/src/main/java/org/apache/commons/collections4/map/MultiValueMap.java
index 2480a5f..81f4971 100644
--- a/src/main/java/org/apache/commons/collections4/map/MultiValueMap.java
+++ b/src/main/java/org/apache/commons/collections4/map/MultiValueMap.java
@@ -560,7 +560,7 @@ public class MultiValueMap<K, V> extends 
AbstractMapDecorator<K, Object> impleme
         @Override
         public T create() {
             try {
-                return clazz.newInstance();
+                return clazz.getDeclaredConstructor().newInstance();
             } catch (final Exception ex) {
                 throw new FunctorException("Cannot instantiate class: " + 
clazz, ex);
             }

Reply via email to