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); }