RFR (L, final): 8218626: Add detailed message to NullPointerException describing what is null.
Remi Forax
forax at univ-mlv.fr
Tue Sep 17 21:51:23 UTC 2019
Hi Goetz,
in bytecodeUtils.cpp, in print_local_var(),
i believe that the code
if (!method->is_static() && (slot == 0)) {
os->print("this");
}
...
is only true if the bytecode is generated by javac and ecj, tools like proguard that tries to obfuscate the code will reuse the slot 0 once "this" is not needed anymore.
This is obviously also true for any other parameters, so in my opinion, you should not try to be too heroic here and always display "local%d".
The other solution is to propagate "this" and "parameter%d" during the static analysis, so "this" will become "local0" once a store_0 is seen.
Rémi
----- Mail original -----
> De: "Goetz Lindenmaier" <goetz.lindenmaier at sap.com>
> À: "hotspot-runtime-dev" <hotspot-runtime-dev at openjdk.java.net>, "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Mardi 17 Septembre 2019 16:18:03
> Objet: RE: RFR (L, final): 8218626: Add detailed message to NullPointerException describing what is null.
> @core-libs experts, I would appreciate comments on the changes
> to NullPointerException.java, especially wrt. the Javadoc comment.
> The change there is S.
>
> Best regards,
> Goetz.
>
>> -----Original Message-----
>> From: Lindenmaier, Goetz
>> Sent: Dienstag, 10. September 2019 11:48
>> To: 'Hotspot dev runtime' <hotspot-runtime-dev at openjdk.java.net>; Java Core
>> Libs <core-libs-dev at openjdk.java.net>
>> Subject: RFR (L, final): 8218626: Add detailed message to NullPointerException
>> describing what is null.
>>
>> Hi,
>>
>>
>>
>> this is the implementation of JEP 358: Helpful NullPointerExceptions.
>>
>>
>>
>> The JEP is in status "Candidate". Coleen (many, many thanks!) ran
>>
>> it through the Oracle-internal processes. Now I please need final reviews
>>
>> for this change so that I can propose it to target jdk 14.
>>
>>
>>
>> JEP: https://bugs.openjdk.java.net/browse/JDK-8220715
>>
>> Enhancement: https://bugs.openjdk.java.net/browse/JDK-8218628
>>
>> webrev: http://cr.openjdk.java.net/~goetz/wr19/8218628-exMsg-NPE/16/
>>
>>
>>
>> The change ran through a lot of testing, all jtreg and jck tests to name
>>
>> only some. The webrev points to patch
>>
>> http://cr.openjdk.java.net/~goetz/wr19/8218628-exMsg-
>> NPE/16/enable_NPE_message.patch
>>
>> that enables the change by default, which was useful for testing to
>>
>> assure the code is used in the tests.
>>
>> I just pushed the change to jdk/submit once more.
>>
>>
>>
>> Please review.
>>
>>
>>
>> Thanks!
>>
> > Goetz.
More information about the core-libs-dev
mailing list