Hiya,
tks for the reply.
I do not use ajax, my fields are defined within a form which is submitted on a selection, and the whole page is refreshed.
here is an extract of my flow:
Code:
<!-- Step 1: Flow object declaration and creation -->
<var name="managerData" class="com.x.x.tunnelvente.flows.ManagerData" />
<var name="reservationData" class="com.x.x.tunnelvente.modeles.ReservationData" />
<!-- Some init data and action states -->
<!-- ... -->
<!-- Main view -->
<view-state id="etape1Vue" view="layouts/layout1" model="reservationData">
<on-render>
<set name="requestScope.contentView" value="'etape1'" />
</on-render>
<transition on="refreshRepartition" to="refreshRepartition" />
<transition on="refreshFormule" to="refreshFormule" />
<transition on="refreshAddon" to="refreshAddon" />
<transition on="refreshAssurance" to="refreshAssurance" />
<transition on="submit" to="submitEtape1" />
</view-state>
<!-- States called when an element has been selected in the form -->
<action-state id="refreshRepartition">
<evaluate expression="managerData.refreshRepartition(reservationData)" />
<transition to="etape1Vue" />
</action-state>
<!-- ... -->
The page is rendered by the state etape1Vue, and present a list of radio buttons for different lists.
When a user click on a radio button, a hidden field in my form is updated and the form is submitted:
Code:
<input type="hidden" id="flowEventID" name="_eventId" value="nextState"/>
For exemple, if the user click on one of the radio buttons related to the "Repartition List", the field named "_eventId" would be updated with the value "refreshRepartition" and the form submitted.
The flow would then execute the action state "refreshRepartition" for some business process, and then redirected to the previous view state in order to display the updated page to the user.
From what i have been able to see, every time a radio button is selected, WebFlow :
1. Creates a new instance of my model "reservationData".
2. Fills it with the data coming from the view.
3. Validate this new instance of the model.
4. and overwrite the previous instance of the model in the flowscope declared via <var name="managerData" class="com.x.x.tunnelvente.flows.ManagerData" /> with the newly instance created.
While selecting continuously different radio button to execute the cycle a few times and with the help of the previously named monitoring tool, i could see that my session memory kept growing after each cycle.
Forcing a GC didn't reduce it, meaning that either some hard reference are being kept (I assume on the previous instance of the model ?), or something else.
I hope this helps clarify the issue i am facing.
EDIT: I am using Spring 3.0.5 and webflow 2.2.0
Best regards,
Farid