devonfw / IDEasy

Tool to automate the setup and updates of a development environment for any project (Successor of devonfw-ide).
Apache License 2.0
8 stars 18 forks source link

ide-settings broken for IntelliJ or bug in XML merger #640

Open hohwille opened 1 day ago

hohwille commented 1 day ago

I updated my IDEasy project and wanted to start intellij:

$ ide intellij
Configuring workspace main for IDE intellij
An unexpected error occurred!
We are sorry for the inconvenience.
Please check the error below, resolve it and try again.
If the error is not on your end (network connectivity, lack of permissions, etc.) please file a bug:
https://github.com/devonfw/IDEasy/issues/new?assignees=&labels=bug&projects=&template=bug.md&title=IllegalStateException%3A+No+merge%3Aid+value+defined+for+element+%2Fprofile%2Finspection_tool+in+document+D%3A%5Cprojects%5CIDEasy%5Csettings%5Cintellij%5Cworkspace%5Cupdate%5C.intellij%5Cconfig%5Cinspection%5CDefault.xml
java.lang.IllegalStateException: No merge:id value defined for element /profile/inspection_tool in document D:\projects\IDEasy\settings\intellij\workspace\update\.intellij\config\inspection\Default.xml
        at com.devonfw.tools.ide.merge.xmlmerger.model.MergeElement.getId(MergeElement.java:95)
        at com.devonfw.tools.ide.merge.xmlmerger.matcher.ElementMatcher.matchElement(ElementMatcher.java:51)
        at com.devonfw.tools.ide.merge.xmlmerger.MergeStrategy.combineChildNodes(MergeStrategy.java:155)
        at com.devonfw.tools.ide.merge.xmlmerger.MergeStrategy$1.merge(MergeStrategy.java:30)
        at com.devonfw.tools.ide.merge.xmlmerger.XmlMerger.merge(XmlMerger.java:103)
        at com.devonfw.tools.ide.merge.xmlmerger.XmlMerger.merge(XmlMerger.java:78)
        at com.devonfw.tools.ide.merge.DirectoryMerger.merge(DirectoryMerger.java:65)
        at com.devonfw.tools.ide.merge.DirectoryMerger.merge(DirectoryMerger.java:69)
        at com.devonfw.tools.ide.merge.DirectoryMerger.merge(DirectoryMerger.java:69)
        at com.devonfw.tools.ide.merge.DirectoryMerger.merge(DirectoryMerger.java:69)
        at com.devonfw.tools.ide.merge.DirectoryMerger.merge(DirectoryMerger.java:69)
        at com.devonfw.tools.ide.tool.ide.IdeToolCommandlet.configureWorkspace(IdeToolCommandlet.java:82)
        at com.devonfw.tools.ide.tool.ide.IdeToolCommandlet.run(IdeToolCommandlet.java:47)
        at com.devonfw.tools.ide.context.AbstractIdeContext.applyAndRun(AbstractIdeContext.java:856)
        at com.devonfw.tools.ide.context.AbstractIdeContext.run(AbstractIdeContext.java:765)
        at com.devonfw.tools.ide.cli.Ideasy.runOrThrow(Ideasy.java:89)
        at com.devonfw.tools.ide.cli.Ideasy.run(Ideasy.java:52)
        at com.devonfw.tools.ide.cli.Ideasy.main(Ideasy.java:29)
        at java.base@21.0.2/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)

Error: IDEasy failed with exit code 255

Seems to relate this this file: https://github.com/devonfw/ide-settings/blob/main/intellij/workspace/update/.intellij/config/inspection/Default.xml

For me the error does not really make sense. Is there a new bug we found in XML merger?

hohwille commented 1 day ago

BTW: We should have an option (e.g. --skip-workspace-update) that skips the workspace update so we do not end up with blocker bugs preventing users to launch IntelliJ after all. However, if you skip ide as proxy command and just run intellij you can still open the IDE.