leibnitz27 / cfr

This is the public repository for the CFR Java decompiler
https://www.benf.org/other/cfr
MIT License
1.93k stars 249 forks source link

NPE after 0.151 -> 0.152 update #301

Closed BrentDouglasB1 closed 2 years ago

BrentDouglasB1 commented 2 years ago

CFR version

CFR 0.152

Compiler

Tested on these two (both zulu) javac 14.0.2 javac 17.0.1

Description

Expected: CFR 0.151 processes the jar correctly Actual: It throws this exception (JDK 17 stack trace for extra NPE info)

Exception analysing jar
java.lang.NullPointerException: Cannot invoke "java.io.File.getCanonicalPath()" because the return value of "java.io.File.getParentFile()" is null
org.benf.cfr.reader.state.ClassFileSourceImpl.addToRelativeClassPath(ClassFileSourceImpl.java:371)
org.benf.cfr.reader.state.ClassFileSourceImpl.addJarContent(ClassFileSourceImpl.java:270)
org.benf.cfr.reader.state.DCCommonState.explicitlyLoadJar(DCCommonState.java:141)
org.benf.cfr.reader.Driver.doJar(Driver.java:127)
org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
org.benf.cfr.reader.Main.main(Main.java:54)

Example

Unfortunately I do not have a reproducer.

leibnitz27 commented 2 years ago

This is fixed on master (unless a different issue but highly unlikely)

Had a couple of mentions of this recently so after I've done current feature set will probably cut a new release, but might be a little while

On Thu, 7 Apr 2022, 13:13 BrentDouglasB1, @.***> wrote:

CFR version

CFR 0.152 Compiler

Tested on these two javac 14.0.2 javac 17.0.1 Description

Expected: CFR 0.151 processes the jar correctly Actual: It throws this exception (JDK 17 stack trace for extra NPE info) where

Exception analysing jar java.lang.NullPointerException: Cannot invoke "java.io.File.getCanonicalPath()" because the return value of "java.io.File.getParentFile()" is null org.benf.cfr.reader.state.ClassFileSourceImpl.addToRelativeClassPath(ClassFileSourceImpl.java:371) org.benf.cfr.reader.state.ClassFileSourceImpl.addJarContent(ClassFileSourceImpl.java:270) org.benf.cfr.reader.state.DCCommonState.explicitlyLoadJar(DCCommonState.java:141) org.benf.cfr.reader.Driver.doJar(Driver.java:127) org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76) org.benf.cfr.reader.Main.main(Main.java:54)

Example

Unfortunately I do not have a reproducer.

— Reply to this email directly, view it on GitHub https://github.com/leibnitz27/cfr/issues/301, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABFXCEA5MQX2JPCPRT47QBLVD3GNZANCNFSM5SZFINHQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

BrentDouglasB1 commented 2 years ago

Oh, I just found #279 I did search for the error but must've grabbed some extra chars when copy/pasting it in

BrentDouglasB1 commented 2 years ago

@leibnitz27 Not hurry for a new release from my perspective, this was more 'I wonder if you've seen it before because it didn't show up in my search' ticket. Thanks for the tool, its great