[ https://issues.apache.org/jira/browse/TRINIDAD-1844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914302#action_12914302 ]
Pavitra Subramaniam commented on TRINIDAD-1844: ----------------------------------------------- Josu, thanks for verifying! Did you want this fix to go into 1.2.12.3? Any other branches on trinidad? I have also logged issue https://issues.apache.org/jira/browse/TRINIDAD-1923, so that the issue can be fixed in trinidad 2.0.0.3-core. Thanks Pavitra > Issue in org.apache.myfaces.trinidad.model.ProccessUtils.getMaxVisitedRowKey > ---------------------------------------------------------------------------- > > Key: TRINIDAD-1844 > URL: https://issues.apache.org/jira/browse/TRINIDAD-1844 > Project: MyFaces Trinidad > Issue Type: Bug > Affects Versions: 1.2.12-plugins > Environment: Mac OSX 10.5 with JVM 1.6.0_20. > Running using ADF with JDeveloper 11.1.1.3.0 > Reporter: Josu Vergara > Priority: Minor > Attachments: ProcessUtils.java, ProcessUtils.java.1 > > > I have been running the following example: > http://adf-samples.googlecode.com/files/SampleTrainModelWithCustomAction.zip > I just changed the view.train.TrainIdMenuModel class constructor to: > public TrainIdMenuModel() { > super(); > super.setMaxPathKey("MyMaxPathKey"); > } > This is done to get a max visited node behavior. However when I click on the > button 'Next' to navigate on the tree the nodes are not enabled as expected > and the user has to click on 'Back' and then 'Next' twice to get the nodes > enabled correctly. > The example can be found in this blog entry: > http://jobinesh.blogspot.com/2010/04/custom-model.html which is based on the > ADF rich client demo > (http://www.oracle.com/technology/products/adf/adffaces/11/doc/demo/adf_faces_rc_demo.html). > The rich client demo can also be used to reproduce the issue. > I accept that using a case test that relies in a whole framework like ADF is > not ideal, but looking at the code of > org.apache.myfaces.trinidad.model.ProcessUtils I think that the problem lies > there. In the javadoc it is stated: "If set but the focus rowKey is after > maxVisitedRowKey, set maxVisitedRowKey to the focus rowKey." > However if we look at the code, we can see that this is not respected since > the maxPath variable is 'cached' at the request map. > If we assume that a MenuModel is going to be updated during the processing of > a request BUT that the ProccessUtils.getMaxVisitedRowKey is invoked BEFORE > the model is actually updated, the maxPath value will be calculated (and > cached) using the non updated model. In particular the maxPath will be > calculated incorrectly if the focusRowKey of the model is NOT updated before > the first call to ProccessUtils.getMaxVisitedRowKey occurs during the > request. After this, if the focusRowKey is updated in the model and > ProccessUtils.getMaxVisitedRowKey is called (always being in the context of > the same request), the contract will not be respected and the cached maxPath > value will be returned (which can correspond to a node BEFORE the current > focus node, which is wrong). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.