RFR: 8345883: Relax system property "stackwalk.debug" in StackStreamFactory to be case insensitive

Mandy Chung mchung at openjdk.org
Tue Dec 10 18:25:38 UTC 2024


On Tue, 10 Dec 2024 11:16:55 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

> Please review this PR which relaxes the interpretation of the system property `stackwalk.debug` in `java.lang.StackStreamFactory` to be case insensitive.
> 
> Motivation:
> Only 5 of 83 boolean system properties in `java.base` have a case sensitive interpretation. Relaxing these to be case insensitive will improve consistency across the code base and simplifies our reasoning about such system properties.
> 
> The `stackwalk.debug` property was introduced when JEP-259 was integrated in JDK-8143911. The property was not mentioned in the CCC for this change, neither in the JEP. Seems like an undocumented, internal debug facility for development and maintenance purposes.
> 
> Risk:
> This should be a low risk change. The property is used for debugging, and the change will shift the interpretation of "TRUE" from false to true. Any user specifying `-Dstackwalk.debug=TRUE` probably meant to enable it.
> 
> Verification:
> Manually verified that `-Dstackwalk.debug=TRUE` and `-Dstackwalk.debug=true` enables debugging and that `-Dstackwalk.debug=false`, `-Dstackwalk.debug` and `-Dstackwalk.debug=abc` does not enable it.

I agree with Roger. The benefit of making this debug property case insensitive is so minor.   For boolean property with false as the default, I think a good improvement would be to accept empty value (i.e. `-Dfoo`) as it's just a switch to turn it on. For example, `-Djdk.net.URLClassPath.disableClassPathURLCheck`,  `-Djdk.net.URLClassPath.showIgnoredClassPathEntries`.

I'm not suggesting this PR to do it as this debug property is only used during debugging and consistency argument does not really stand.

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

PR Comment: https://git.openjdk.org/jdk/pull/22659#issuecomment-2532558476


More information about the core-libs-dev mailing list