On Wed, 12 Apr 2023 04:00:57 GMT, Jeremy <d...@openjdk.org> wrote: >> This resolves a 25 year old P4 ticket: a NullPointerException is printed to >> System.err needlessly. >> >> This resolution involves confirming that an ImageConsumer is still >> registered before every notification. >> >> I'll understand if this is rejected as unimportant, but I stumbled across >> this in the real world the other day and thought this was a simple enough >> bug to practice on. > > Jeremy has updated the pull request incrementally with one additional commit > since the last revision: > > 4200096: rewrite solution, add LegitimateNullPointerTest > > Also I'm breaking out the unit tests (now there are 4 of them) into their > own directory. > > The new LegitimateNullPointerTest confirms that we DO want to see > NullPointerExceptions printed to System.err IF they come from the > ImageConsumer itself. > > In this ticket most of our focus has been on the NPE's that stem from > removing an ImageConsumer from OSIS mid-production (so the NPE was when OSIS > tried to interact with its `theConsumer` field). This test tries to add other > possible NPE's to our consideration. > > This new test passed in the master branch before this branch. I want to > preserve this existing behavior if this proposal is accepted.
> I don't like the idea of removing `e.printStackTrace()`. For every case we've > discussed so far: I agree that sounds good/harmless. But if the ImageConsumer > is buggy and ends up throwing its own NullPointerException: then I'd argue > developers _need_ that NPE printed to the console so they can see what's > going on. > > I'll add a new (4th) unit test for this condition: I DO expect a NPE from the > ImageConsumer to be printed to System.err. Yes, that's a good point. Just check if consumer is null and if it isn't, then the NPE can't be from de-referemcing that and should be reported. Also note my suggestion from yesterday that the NPE could still be reported if a system property is set. If you prefer to have more discussion to agreement/clarification before coding up something just to find we revise it again , or if you prefer to code it up and ask "what do you think about this ? ", so there's clarity on what you mean, either is fine. ------------- PR Comment: https://git.openjdk.org/jdk/pull/13408#issuecomment-1504605358