Community
Participate
Working Groups
Build Identifier: The LazyLinkingResource tries to resolve all CrossLinkFragments as local cross links. If the Proxy is a reference from another model which can't be resolved, the resolution will fail, if you are lucky, or return the wrong element, if the Feature index combination matches. Even worse, the resolve is triggered from isAffected if you change/save any file in the workspace. Reproducible: Always Steps to Reproduce: 1. Create two model files with cross references, the reference from the second is broken. 2. Write some code (i.e. a check) that get the proxy from the second file and reference it in the first file. 3. Open both files with a check which set the referenced element from another model in the file in the background. 3. After the check succeeded every change leeds to a call of isAffected and the NullPointerException is shown in a pop up window.
Just a minor remark: You should not modify the model during validation. Validation is a readOnly action and not guarded against concurrent modifications besides for proxy resolution. However, resolveLazyCrossReferences should check the resource-part of the uri, too, for the sake of robustness.
Created attachment 201297 [details] Patch for URI-Check in LazyLinkingResource
pushed to master
Closing all bugs that were set to RESOLVED before Neon.0