Add a null check so that the proper exception is thrown. #1405
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This issue is resolved in 3.x and is essentially backported from 47d106c which was part of GROOVY-8279.
This issue ends up being a problem for Apache TinkerPop which relies on groovysh fairly heavily. Without this change, a fail within
shell.parse()
within thetry
block leaves thetype
asnull
and then provides that argument toremoveClassCacheEntry()
. At that point no matter what exceptionshell.parse()
threw, theInterpreter.evaluate()
will end up throwing aNullPointerException
thus masking the error. In our case at TinkerPop, the exception typically masked is aStackOverflowError
which would be much more useful than theNullPointerException
as it would point to a common specific problem that we could alert users to more readily.