From d33223562d1e47fd0cdf5b8eb6310fd5768a4f9c Mon Sep 17 00:00:00 2001 From: Agaricus Date: Fri, 26 Apr 2013 18:03:31 -0700 Subject: [PATCH] Fix ClassCastException in tryClimb building inheritance map The interface uses the generic Collection type but the implementation an ArrayList. Fix by creating an ArrayList from the Collection. Resolves this crash observed when updating MCPC+'s plugin loader: https://gist.github.com/agaricusb/5471423 --- src/main/java/net/md_5/specialsource/InheritanceMap.java | 4 ++-- src/main/java/net/md_5/specialsource/JarMapping.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/md_5/specialsource/InheritanceMap.java b/src/main/java/net/md_5/specialsource/InheritanceMap.java index 0dae92e..86d1d12 100644 --- a/src/main/java/net/md_5/specialsource/InheritanceMap.java +++ b/src/main/java/net/md_5/specialsource/InheritanceMap.java @@ -127,8 +127,8 @@ public class InheritanceMap implements InheritanceProvider { return inheritanceMap.get(className); } - public void setParents(String className, ArrayList parents) { - inheritanceMap.put(className, parents); + public void setParents(String className, Collection parents) { + inheritanceMap.put(className, new ArrayList(parents)); } public int size() { diff --git a/src/main/java/net/md_5/specialsource/JarMapping.java b/src/main/java/net/md_5/specialsource/JarMapping.java index b201e50..cd9d1eb 100644 --- a/src/main/java/net/md_5/specialsource/JarMapping.java +++ b/src/main/java/net/md_5/specialsource/JarMapping.java @@ -81,7 +81,7 @@ public class JarMapping { parents = inheritanceMap.getParents(owner); } else if (fallbackInheritanceProvider != null) { parents = fallbackInheritanceProvider.getParents(owner); - inheritanceMap.setParents(owner, (ArrayList) parents); + inheritanceMap.setParents(owner, parents); } if (parents != null) {