Bug #2735

Mis à jour par Sebastien Jacquot il y a plus de 5 ans

Auto-save preference is broken since the parameter user_persistable and internal_persistable have been fused.

h3. Note

In TXMResult constructor, it seems:

<pre>
// set result as persistent if AUTO_PERSISTENCE_ENABLED preference is activated
if (TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED)) {
this.userPersistable = true;
}

</pre>

userPersistable value is overridden later by the call of:

<pre>
this.autoLoadParametersFromAnnotations(); // auto fill from Parameter annotations
</pre>

When creating a new result, TXMPreferences.PERSITABLE preference is not set so userPersistable member field is set to default Java boolean value (false).

h3. Solution 1

* add test on TXMPreferences.PERSITABLE + TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED) directly in autoLoadParametersFromAnnotations()

h3. Solution 2

* set the preference node value instead of than the variable member

<pre>

// set result as persistent if AUTO_PERSISTENCE_ENABLED preference is activated
if (TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED)) {
this.saveParameter(TXMPreferences.PERSITABLE, true);
}
</pre>

Retour