Fix occasional ClassCastException when parsing Maven pom.xml files #8460
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.
When you open any Maven project, when Netbeans tries to parse
pom.xml
sometimes it shows the class cast exception as seen in issue oracle/javavscode#378 and oracle/javavscode#185. The root cause is if some of the modules are not included likeorg.netbeans.modules.editor.structure
andorg.netbeans.modules.editor.deprecated.pre65formatting
, thenLspMavenErrorProvider
class sends document asFilterDocument
instead ofNbEditorDocument
which causes this class cast exception. Since,FilterDocument
extendsStyledDocument
and notLineDocument
which is required by theBaseDocument
.This PR addresses above mentioned issue by introducing a new utility method that accepts a
Document
and ensures it is returned as aBaseDocument
. If the givenDocument
is already an instance ofBaseDocument
, it is returned as-is; otherwise, it is converted accordingly.This approach ensures that the implementation remains agnostic to the available modules, providing a consistent and reliable way to work with
BaseDocument
regardless of the module configuration.