On Tue, 29 Nov 2022 10:26:31 GMT, Adam Sotona <asot...@openjdk.org> wrote:

> javap uses proprietary com.sun.tools.classfile library to parse class files.
> 
> This patch converts javap to use Classfile API.
> 
> Please review.
> 
> Thanks,
> Adam

I took a look at this patch locally; 4 of the javap tests fail. The main 
problem with this port is that javap has in-depth constant pool error handling; 
for instance, if an interface list is broken with some invalid class entries, 
the old library allows to report the valid entries, while classfile api just 
interprets the whole interface list at once and fails with 
IllegalArgumentException or IndexOutOfBoundsException for invalid constant pool 
indices. It's quite complicated to safeguard every potentially erroneous call.

test/langtools/tools/javap/TestClassNameWarning.java line 180:

> 178:                 cf.magic, cf.minor_version, cf.major_version, 
> cf.constant_pool,
> 179:                 cf.access_flags,
> 180:                 cf.this_class,

Should we just remove this no-name-class case since it's already an invalid 
class file?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/11411#issuecomment-1493109566
PR Review Comment: https://git.openjdk.org/jdk/pull/11411#discussion_r1158595266

Reply via email to