Releases: classgraph/classgraph
classgraph-4.8.144
(Obsolete -- do not use -- triggered a regression on Windows.)
classgraph-4.8.143
Fix exception typeSignatureParamTypes.size() > typeDescriptorParamTypes.size()
when dealing with broken compiler output (where the type descriptor of a method has a different number of entries in it than the type signature for the same method) (#660, thanks to @colin-young for reporting).
classgraph-4.8.142
Bugs fixed:
- Added method
ClassInfo#getTypeSignatureOrTypeDescriptor()
so that type annotations can be read for non-generic class definitions (#662, thanks to @raner for the request). - Fixed
Illegal reflective access
warning on some obsolete and buggy JVM versions (#663, thanks to @MR6996 for the report).
Two behavioral changes, which may result in breakage for some users:
- The list of interfaces implemented by a class, as returned by
ClassInfo#getInterfaces()
, is no longer sorted by name, but is returned in the order in which the interfaces were specified in the class definition (this order is significant, so the old behavior of sorting by name was incorrect). - The result of
toString()
for several of theTypeSignature
subclasses has changed to use$
as a separator of inner classes, rather than.
, to bring thetoString()
behavior closer to the result ofClass#getName()
.
classgraph-4.8.141
classgraph-4.8.140
classgraph-4.8.139
Bugfixes:
- Fix to work with newer Quarkus classloader (#641, thanks to @michael-simons for the fix in #642!).
- If an override classloader is an
AppClassLoader
, also scan the traditional classpath (#639, thanks to @limbic-derek for the report). - Fix for parsing error if Kotlin function names contain parentheses (#645). Also fixes a potential stack overflow in this case.
New feature:
- Added support for getting the exceptions thrown by a method (#633, thank you to @jkschneider for submitting the complete implementation of this feature, in #637!)
classgraph-4.8.138
-
Added two methods (thanks to @FranGomezVenegas for requesting these, #608):
FieldInfoList ClassInfo#getEnumConstants()
: returns all the enum constants of an enum class asFieldInfo
objects (without loading the enum class).List<Object> ClassInfo#getEnumConstantObjects()
: returns all the enum constants of an enum class as objects of the same type as the enum (after loading the enum class and initializing enum constants).
-
Mitigate log4j2 vulnerability CVE-2021-44228: ClassGraph does not use log4j2, but does use the built-in Java logging framework, which may be redirected to the log4j2 framework by the calling environment. To be safe, ClassGraph now builds in a protection against this critical vulnerability.
classgraph-4.8.137
Fix illegal access warning on Adopt JDK for most usage (#605, thanks to @UlrichLohrmann for the report)
classgraph-4.8.136
Contribution by @tkrautinger (#604):
ClassInfo
: AddedisPrivate()
,isProtected()
MethodInfo
: AddedisPrivate()
,isProtected()
,isAbstract()
,isStrict()
FieldInfo
: AddedisPrivate()
,isProtected()
,isSynthetic()
,isEnum()
classgraph-4.8.135
- Fixed issue with resources remaining marked as open after
close()
was called on anInputStream
opened on a module resource (#600 and #602, thanks to @chrisr3) - Added
Resource#readCloseable()
that returns aCloseableByteBuffer
that callsResource#close()
whenCloseableByteBuffer#close()
is called. (#600)