From 29104f24d21457dee47fc9249617cdae0936e8e6 Mon Sep 17 00:00:00 2001 From: Agaricus Date: Fri, 26 Apr 2013 18:44:06 -0700 Subject: [PATCH] Fix null superclass in inheritance map Object has no superclass, so don't add it to the list. Also allow InheritanceMap setParents null as a shorthand for none. --- src/main/java/net/md_5/specialsource/InheritanceMap.java | 6 +++++- .../md_5/specialsource/provider/ClassLoaderProvider.java | 4 +++- .../java/net/md_5/specialsource/provider/JarProvider.java | 4 +++- 3 files changed, 11 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 86d1d12..139d62f 100644 --- a/src/main/java/net/md_5/specialsource/InheritanceMap.java +++ b/src/main/java/net/md_5/specialsource/InheritanceMap.java @@ -128,7 +128,11 @@ public class InheritanceMap implements InheritanceProvider { } public void setParents(String className, Collection parents) { - inheritanceMap.put(className, new ArrayList(parents)); + if (parents == null) { + inheritanceMap.put(className, new ArrayList()); + } else { + inheritanceMap.put(className, new ArrayList(parents)); + } } public int size() { diff --git a/src/main/java/net/md_5/specialsource/provider/ClassLoaderProvider.java b/src/main/java/net/md_5/specialsource/provider/ClassLoaderProvider.java index 9a82e82..e1fc1b3 100644 --- a/src/main/java/net/md_5/specialsource/provider/ClassLoaderProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/ClassLoaderProvider.java @@ -65,7 +65,9 @@ public class ClassLoaderProvider implements InheritanceProvider { for (String iface : (List) node.interfaces) { parents.add(iface); } - parents.add(node.superName); + if (node.superName != null) { + parents.add(node.superName); + } return parents; } catch (IOException ex) { diff --git a/src/main/java/net/md_5/specialsource/provider/JarProvider.java b/src/main/java/net/md_5/specialsource/provider/JarProvider.java index 28dddd6..d2d73ab 100644 --- a/src/main/java/net/md_5/specialsource/provider/JarProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/JarProvider.java @@ -58,7 +58,9 @@ public class JarProvider implements InheritanceProvider { for (String iface : (List) node.interfaces) { parents.add(iface); } - parents.add(node.superName); + if (node.superName != null) { + parents.add(node.superName); + } return parents; }