diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/collections/ListMap.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/collections/ListMap.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/collections/ListMap.java b/vespajlib/src/main/java/com/yahoo/collections/ListMap.java index b601545b43b..e851362a99d 100644 --- a/vespajlib/src/main/java/com/yahoo/collections/ListMap.java +++ b/vespajlib/src/main/java/com/yahoo/collections/ListMap.java @@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.apache.commons.lang.builder.ToStringBuilder; +import java.lang.reflect.InvocationTargetException; import java.util.*; /** @@ -25,7 +26,10 @@ public class ListMap<K, V> { @SuppressWarnings("unchecked") public ListMap(@SuppressWarnings("rawtypes") Class<? extends Map> implementation) { try { - this.map = implementation.newInstance(); + this.map = implementation.getDeclaredConstructor().newInstance(); + } catch (InvocationTargetException e) { + // For backwards compatibility from when this method used implementation.newInstance() + throw new IllegalArgumentException(e.getCause()); } catch (Exception e) { throw new IllegalArgumentException(e); } |