Studio's fetchPlans.xml "Structure" mode display does not match the XML text description

Jmix version: 3.0.1
Jmix Studio plugin version: 3.0.1-262
IntelliJ IDEA 2026.2.0.1
Build #IU-262.8665.337, built on July 22, 2026
Source revision: 0b6db099218ed
Runtime version: 25.0.3+9-b508.16 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.lwawt.macosx.LWCToolkit
Operating System: macOS 26.5.2 (25F84)
Exception reporter ID: 130125217606a47-a271-49c2-abca-7694492439bf
JCEF version: 144.0.15-262-b37
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Metal Rendering is ON
Kotlin: 262.8665.337-IJ
File System: Case-Sensitive Journaled HFS+ (APFS)
Browser: Safari - Version 26.5.2 (21624.2.5.11.8)

Hello Everyone

While I was analysing my fetch problem Cannot get unfetched attribute from detached object, but the attribute is in the Fetch Plan , I discovered that the fetchPlans.xml graphical “Structure” mode display in Studio does not match the XML text description. Please note that I first observed this problem with Studio version 2.8.2.

Problem

In the “Structure” mode, my “ambition-detail-plan” does not show that its Interest ASSOCIATION (Many-to-One) is included; its checkbox is not selected. The “availability-detail-plan” is identical to the "“ambition-detail-plan” and its Interest ASSOCIATION (Many-to-One) is selected in the “Structure” mode as expected.

<fetchPlan entity="notefall_Ambition" name="ambition-detail-plan" extends="_base"/>
<fetchPlan entity="notefall_Availability" name="availability-detail-plan" extends="_base"/>

This same situation is seen with these two properties within my performance-detail-plan, independent of the plan that I select.

Here I use “_base” for both properties…

<fetchPlan entity="notefall_Performance" name="performance-detail-plan" extends="_base">
    <property name="musicStyle" fetchPlan="_base"/>
    <property name="searchProfiles" fetchPlan="_base"/>
    <property name="roles" fetchPlan="_base"/>
    <property name="groupFormation" fetchPlan="_base">
        <property name="instrumentation" fetchPlan="_base"/>
    </property>
    <property name="ambition" fetchPlan="_base"/>
    <property name="availability" fetchPlan="_base"/>
    <property name="creator" fetchPlan="_base"/>
    <property name="gigType" fetchPlan="_base"/>
    <property name="gigSeason" fetchPlan="_base"/>
    <property name="gigLocation" fetchPlan="_base"/>
    <property name="profileDefaults" fetchPlan="_base"/>
    <property name="member" fetchPlan="_base">
        <property name="language" fetchPlan="_base"/>
        <property name="link" fetchPlan="_base"/>
    </property>
    <property name="membership" fetchPlan="_base"/>
    <property name="instrumentProfiles" fetchPlan="_base"/>
</fetchPlan>

And here I use their own detail-plans…

<fetchPlan entity="notefall_Performance" name="performance-detail-plan" extends="_base">
    <property name="musicStyle" fetchPlan="_base"/>
    <property name="searchProfiles" fetchPlan="_base"/>
    <property name="roles" fetchPlan="_base"/>
    <property name="groupFormation" fetchPlan="_base">
        <property name="instrumentation" fetchPlan="_base"/>
    </property>
    <property name="ambition" fetchPlan="ambition-detail-plan"/>
    <property name="availability" fetchPlan="availability-detail-plan"/>
    <property name="creator" fetchPlan="_base"/>
    <property name="gigType" fetchPlan="_base"/>
    <property name="gigSeason" fetchPlan="_base"/>
    <property name="gigLocation" fetchPlan="_base"/>
    <property name="profileDefaults" fetchPlan="_base"/>
    <property name="member" fetchPlan="_base">
        <property name="language" fetchPlan="_base"/>
        <property name="link" fetchPlan="_base"/>
    </property>
    <property name="membership" fetchPlan="_base"/>
    <property name="instrumentProfiles" fetchPlan="_base"/>
</fetchPlan>

Is this a known problem? Do you have any suggestions how to resolve this?

Thank you in advance for your support and feedback.

Best regards
Chris

Hi Chris,

Thanks for the detailed report and screenshots.

Looking at the XML snippet, ambition-detail-plan and availability-detail-plan do not declare any properties of their own — they simply extend the built-in _base fetch plan. According to the documentation, _base includes all attributes of _local and _instance_name, plus embedded references. Since interest is a many-to-one association rather than an embedded reference, it is included in _base only if it is part of the entity’s instance name.

So my guess is that the instance name of notefall_Availability includes interest, while the one of notefall_Ambition does not. In that case the Structure view is showing the correct resolved content of each plan, and the difference comes from the entities rather than from the XML. The same reasoning would explain what you see for the nested ambition / availability properties in performance-detail-plan.

Could you share the @InstanceName declarations of both entities so I can confirm this?

Regards,
Alexander

@gaslov

Hi Alexander

Thank you very much for the quick reply and for the solution. You are absolutely correct; my Ambition entity was missing the @InstanceName declaration. I have corrected it and everything appears as expected.

Best regards

Chris