Jasig is proud to announce the general audience release of uPortal 4.0.2. The first of our scheduled monthly patch releases for uPortal 4.0 we've fixed a number of issues that have been brought up by initial adopters.

Important Update Notes

  1. There are a few new tables in 4.0.2. To add these tables run ant db-hibernate-update once you have the 4.0.2 source installed.


  • [UP-3095] - Localized names of layout structure elements are ignored
  • [UP-3121] - Fix permissions lookup form
  • [UP-3127] - IdentityImportExportTest fails when executed by mvn test
  • [UP-3136] - "Return to dashboard" link is broken in search results page (search portlet focused view)
  • [UP-3177] - Cannot disallow 'remove this portlet' in Ajax-based fragment permissions
  • [UP-3178] - Possible missing </div> in markup for Permissions Manager portlet
  • [UP-3191] - InvalidRegex: Pattern value '[\w-_]+' is not a valid regular expression. The reported error was: ''-' is an invalid character range. Write '\-'.' at column '3'.
  • [UP-3192] - Invalid Regular Expression in common-types XSD
  • [UP-3193] - TableFormatterTest fails on Windows Environments
  • [UP-3194] - issue rendering page after authentication.
  • [UP-3197] - uPortal Classloader not set in pluto callbacks
  • [UP-3202] - The 'Add to my layout' window has title upMsg:getMessage('add.content', $USER_LANG)
  • [UP-3203] - 'Back to my dashboard' doesn't work in focused mode of transient portlets
  • [UP-3209] - Logging In portlet suggests can log in as "demo/demo" but that username/password combo doesn't work
  • [UP-3214] - proposed patch for circular dependencies in Grouper Groups and possible other group stores.
  • [UP-3220] - failing unit tests in 4.0.0 quickstart
  • [UP-3223] - fix for importing channels when using Grouper as a group service backend.
  • [UP-3224] - ConcurrentModificationException during data-export
  • [UP-3226] - Resource request validation-based caching responds inappropriately after timeout with a still-valid ETag
  • [UP-3227] - UP4 file upload returns empty (null) request parameters
  • [UP-3228] - Mobile theme is missing alt attributes for portlet icons
  • [UP-3234] - serveResource() method within GenericPortlet throws "java.lang.IllegalStateException: getOutputStream() has already been called for this response" error
  • [UP-3236] - LDAP person directory not searched when attempting to add a person to a group
  • [UP-3237] - ConfigMode fails with BadlyFormattedFlowExecutionKeyException
  • [UP-3238] - Portlets can't modify read-only preferences in CONFIG mode
  • [UP-3239] - uP4 Permissions not included in default dataset


  • [UP-2993] - Uprade all themes to Fluid 1.4
  • [UP-3147] - set expires and cache-control response headers for resource urls when possible
  • [UP-3170] - Implement Portal Events
  • [UP-3171] - Update database event handling to use new portal event model
  • [UP-3198] - Improve JpaPortletExecutionInterceptor, copy logic from Spring's JpaInterceptor
  • [UP-3199] - Remove unused Locators
  • [UP-3213] - Change label in footer from "" to "uPortal website"
  • [UP-3217] - Support for multi-valued attributes in User Info Map in uPortal 4
  • [UP-3229] - Update desktop and mobile themes to declare HTML5 as the doctype
  • [UP-3231] - Add DB based locking service
  • [UP-3232] - Upgrade Depdencies

New Feature

  • [UP-2604] - Integrate statistics aggregation tool
  • [UP-3218] - Bundle the Jasig Email Preview portlet with the uPortal platform


  • [UP-3230] - Remove legacy Android skin


  • [UP-3122] - Permission field autocomplete only works with lowercase letters
  • [UP-3123] - Actual field values should not be grayed out like the initial example values
  • [UP-3162] - Create portlet for translating database messages
  • [UP-3189] - Resource aggregator should find every skin implicitly

Release Notes:

-Eric Dalquist

Deployer Notes

Issues addressed in uPortal 4.0.1

Bugs known to afflict uPortal 4.0