History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: UP-1653
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Matt Young
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
uPortal

Session timeout while editing preferences causes next login to show blank screen

Created: 26/Apr/07 05:13 PM   Updated: 26/Apr/07 05:13 PM
Component/s: Preferences, Distributed Layout Management (DLM)
Affects Version/s: 2.5.3 GA
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
When a user logs into the portal, and then selected preferences, and "save preferences on logout" is set to true, and then they let their session timeout, the next time they return to the portal, they'll see the footer only.

It appears that this is because the Structure Stylesheet User Preference 'userLayoutRoot' is being set to 'ctf1' when you enter preferences, and if your session expires this is saved, but you can't log back into the portal directly on the preferences page.

As a fix to this, in the finishedSession() method of UserPreferencesManager.java, I've added the following code to reset all of a user's userLayoutRoots to 'root'. Maybe not the perfect solution, but it does halt the problem.

public void finishedSession(HttpSessionBindingEvent bindingEvent) {
        // persist the layout and user preferences
        try {
            if(saveUserPreferencesAtLogout) {
                // DUKE MCY Fix for losing layout if session expires mid stream
                StructureStylesheetUserPreferences ssup = complete_up.getStructureStylesheetUserPreferences();
                if (!ssup.getParameterValue("userLayoutRoot").equals("root")) {
                    Hashtable ht = ssup.getParameterValues();
                    ht.put("userLayoutRoot", "root");
                    ssup.setParameterValues(ht);
                }
                // End
                ulsdb.putUserPreferences(m_person, complete_up);
                ulm.saveUserLayout();
            }
        } catch (Exception e) {
            log.error("UserPreferencesManager::finishedSession() : unable to persist layout upon session termination !", e);
        }
    }

 All   Comments   Work Log   Change History   FishEye      Sort Order:
There are no comments yet on this issue.