Fix NPE when there are build errors related to lack of reflection support

This commit is contained in:
Alexey Andreev 2018-06-18 13:40:00 +03:00
parent bb55089742
commit cdffb779e0

View File

@ -113,10 +113,12 @@ public class ReflectionDependencyListener extends AbstractDependencyListener {
classesWithReflectableFields.add(type.getName());
ClassReader cls = agent.getClassSource().get(type.getName());
if (cls != null) {
for (FieldReader field : cls.getFields()) {
linkType(agent, field.getType());
}
}
}
});
} else if (method.getReference().equals(getConstructors) || method.getReference().equals(getMethods)) {
method.getVariable(0).getClassValueNode().addConsumer(type -> {
@ -124,6 +126,7 @@ public class ReflectionDependencyListener extends AbstractDependencyListener {
classesWithReflectableMethods.add(type.getName());
ClassReader cls = agent.getClassSource().get(type.getName());
if (cls != null) {
for (MethodReader reflectableMethod : cls.getMethods()) {
linkType(agent, reflectableMethod.getResultType());
for (ValueType param : reflectableMethod.getParameterTypes()) {
@ -131,6 +134,7 @@ public class ReflectionDependencyListener extends AbstractDependencyListener {
}
}
}
}
});
} else if (method.getReference().equals(forName) || method.getReference().equals(forNameShort)) {
allClasses.connect(method.getResult().getClassValueNode());