mirror of
https://github.com/konsoletyper/teavm.git
synced 2024-11-21 01:00:54 +08:00
JIRA #334 - check for null classreader
This commit is contained in:
parent
d9c5b3fd04
commit
744eb39e6d
@ -335,15 +335,20 @@ public class ReflectClassImpl<T> implements ReflectClass<T> {
|
||||
@Override
|
||||
public ReflectField[] getFields() {
|
||||
if (fieldsCache == null) {
|
||||
resolve();
|
||||
if (classReader == null) {
|
||||
fieldsCache = new ReflectField[0];
|
||||
} else {
|
||||
Set<String> visited = new HashSet<>();
|
||||
fieldsCache = context.getClassSource()
|
||||
fieldsCache = context
|
||||
.getClassSource()
|
||||
.getAncestors(classReader.getName())
|
||||
.flatMap(cls -> cls.getFields().stream().filter(fld -> fld.getLevel() == AccessLevel.PUBLIC))
|
||||
.filter(fld -> visited.add(fld.getName()))
|
||||
.map(fld -> context.getClass(ValueType.object(fld.getOwnerName()))
|
||||
.getDeclaredField(fld.getName()))
|
||||
.map(fld -> context.getClass(ValueType.object(fld.getOwnerName())).getDeclaredField(fld.getName()))
|
||||
.toArray(ReflectField[]::new);
|
||||
}
|
||||
}
|
||||
return fieldsCache.clone();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user