Uploaded image for project: 'Jetspeed 2'
  1. Jetspeed 2
  2. JS2-509

Portlet Preferences are not stored on a user by user basis


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-FINAL
    • Fix Version/s: 2.1-dev, 2.1
    • Labels:
    • Environment:
      Tomcat 5.5, JDK 1.5, Jetspeed 2.0


      Portlet Preferences are not stored on a user by user basis.

      Looking in the database, it looks as though the preferences are being associated with the fragment ID for the portlet of the psml page.

      I am pretty sure that the intention of the portlet spec is to enable the storing of preferences on a user by user basis. But apparently this is not possible in jetspeed unless the user creates a new portal page?

      The data I see in the DB seems to support this:

      I login as user A, and I have a portlet preference for one of my report portlets called reportTimeZone. By default is set to US/Eastern.

      User A edits his portlet preferences and sets the reportTimeZone to be US/Pacific.

      Looking in the prefs_property_value table, can see the newly created value. It has node ID 2875 and value US/Pacific. The property name is 0, I assume that this is the index in the array if it were multi-valued.

      I then look in the prefs_node table for a row with node_id=2875. The row is present and the full path of the node is:


      Note that reports-3 is the fragment ID for the portlet fragment in the psml page.

      However, instead of 'no-principal', I would have expected to see the user name of user A.

      So now I log in as user B and go to edit my portlet preferences and the value of the reportTimeZone preference is set to US/Pacific, not the default US/Eastern I would have expected.

      So I then, as user B, set the reportTimeZone to US/Central and update my preferences.

      Sure enough, it overwrites the value in the prefs_property_value table to US/Central.

      So, in order to get the behaviour I need, I would have to generate portal pages for each user and vary the id of the portlet fragment? This does not seem like a good solution to me.

      Further, in my environment, users are not permitted to create their own pages and customize them. I am simply providing a form in the doEdit method of my portlet to allow users to customize the behaviour of the portlet.

      So, in my environment, imagine I had a weather portlet on a portal page. If someone sets their preferred city to be Bangkok, then all users will get weather for Bangkok!

      This does not seem right to me...




            • Assignee:
              aaronmevans Aaron Evans
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: