Security

IFrame portlet vulnerable to password theft
Malicious JavaScript can be inserted into the Activities portlet
Guest users become Message Board moderators if given permission to add messages
Malicious JavaScript can be inserted into the Language portlet
A member of an organization or user group has membership access to all organizations and user groups
Malicious JavaScript can be inserted into the Plugins Configuration section of Control Panel
Users can perform actions without the proper permissions
Minifier servlet allows access to any file on the system
Some JSONService allows unauthenticated access
SecureFilter does not honor SERVER_IP
Inputting invalid URL parameters may expose internal error messages
Possible XSS vulnerability in search portlet
Phishers can redirect users to an untrusted site
Add ability to restrict user full names during registration
Redirect url attributes are not handled properly in windows

Performance

Nested Portlets causes slow performance
Added a Language Filter to speed up page loading time
Remove unused references to PermissionUserFinder
Improved performance of GetterUtil
Improved Ehcache performance in large clusters
Memory leak related with message bus configurator
Memory leak with Quartz
Memory leak with Spring
Some css is not being minified if Liferay is in a non-root context
Messaging performance has been improved by switching to AspectJ
Pages now load 100-200ms faster
Synchronous messages no longer has to wait for a timeout if no service provider is registered
Liferay portal starts up 30% faster after removing redundant spring beans
Reduced time needed to reindex search index
The Manage Pages page takes a long time to load
Reduced the size of generated Spring XML files to speed up start up times
Optimized algorithm used to get Spring root ApplicationContext
Optimized algorithm used for BeanReferenceAnnotationBeanPostProcessor
Resource files are copied every time a portlet is deployed
Algorithm used to update files via WebDAV has been improved
Algorithm used to export Document Library files to a LAR has been improved
Algorithm used to deliver a LAR has been improved
Document Library is more responsive when adding/updating files
Exporting a website is faster
Classes used for upgrading are cached
Added a lazy StringBuilder
IO operations are faster
Improved StripFilter performance
Performance improvement for GZipFilter
Performance improvement for comments
Removed InstancePool from *Factory classes
Add ability to set max dimensions of user portrait
Improved performance with new unsync IO classes
Performance improvement for PortletPreferences
Cache key prefixes are now cached to improve performance
Compressed CSS/JavaScript are now cached
Improved performance of UnicodeFormatter
Improved performance of MethodInvoker
Improved performance of StringUtil.split()
Improved performance of CacheResponse
Removed extraneous logic from thread caches
Switching to StAX for XML parsing
Replaced StringBuilder with StringBundler
Improved performance of taglibs

General

Ehcache's blocking cache causes the portal to deadlock and go down
Portlet 2.0 (JSR 286) Compliance - Events incorrectly set window state and portlet mode
Cached Images are not displayed when using Websphere 7
Building javadocs fail when command line arguments are too long
Quartz does not have enough time to shutdown
Activating monitoring filter no longer requires restarting the server
Added option to show monitoring data at the bottom of a page
"ant format-source" runs twice as fast
Cannot run MulticastClientTool outside of the portal
Friendly URLs with slashes are incorrectly allowed for a Community
HTTP 404 Not Found responses are cached
HTTP 304 responses has a non-zero length body
Some languages are not displayed correctly with MS SQL Server after contents are saved and liferay is restarted
Method invoker calls the wrong method
Portal Poller may cause application server to lock up
Cannot have a page on a virtual host with where the friendly URL starts with /wsrp
base-spring.xml advices are applied incorrectly
Cannot access a plugin's class loader from another plugin
Old properties in portal.properties causes confusion
Calling <liferay-util:include> from css.jsp causes a NullPointerException
Some users and groups in Active Directory are not imported
ProxyRequest throws a new exception even if no error has occurred
Default user associations now work with existing users
Added option to use reCAPTCHA for captcha checks
"Import" and "Export" tabs display the same thing after clicking on the "Look and Feel" tab
Pages do not validate as XHTML
Pages are cached incorrectly for some browsers
Can not use a custom implementation of Layout with LayoutType and LayoutTypePortlet
FileUtil can not handle large files
Hidden inputs no longer required for edit_user.jsp
Add ehcache.xsd for verifying ehcache configuration files
Added interfaces for manually written persistence classes
Messaging proxy throws null pointer exception when the underlying service returns null
Portal logs can not be configured with any appenders
StartupHelper has been refactored into multiple classes
Startup errors does not stop the server
Uploading a page icon does not work
MethodInvoker can not invoke arguments by class name
Web server does not shutdown if jcr.initialize.on.startup=true
Content-Type is not set when StripFilter is enabled
Added option to remove /web/guest from URL
Portal does not recover after restarting the database
Portlets inserted into a layout column with start static portlets lose their position when the page is refreshed
Added support for Maven 2
Improved warning messages for PortalImpl
Re-factored MainServlet to make it easier to customize
Class loading issue with with Base64.stringToObject()
Invalid friendly URLs are allowed for communities and pages
Lock service can now create a lock which never expires
Standardized the ordering of *ServiceImpl's add/delete/update()
Allow My Places to be configured to be displayed in a simpler way
Improved logging for PropsUtil
JSON services do not work if the user is required to change his password
/html/portal/css.jsp has been split into multiple files for easier customization
Add ability to dynamically scale images
FCKEditor does not work correctly with HTML 5
Numeric screen names are now allowed
MethodInvoker calls the wrong method
NamespaceServletRequest does not return shared request attributes
Google Analytics updated to load asynchronously
Communities are not sorted alphabetically
CounterLocalServiceUtil.reset(String, int) does not work
Development parameters now last the entire session
Browsers incorrectly identified as IE6
Added option to remember maximized window state across pages
ZipReader & ZipWriter now support additional formats
Spring beans are not shut down
Add ability to not display pagination controls above results
Optimized ProgressTracker's code for getting sessions
Add ability to restrict company users from modifying their screennames and email addresses
Add application filtering may not work sometimes
Shut down errors related with HttpUtil
Shut down errors related with ThreadLocalRegistry
Axis is not shutdown properly
HttpUtil.URLtoByteArray() does not set the user agent or content type
i18n friendly URLs do not work without a slash
Improved toString() for *RequestDataSample
Replaced "application/octet-stream" with ContentType
Added "id" attribute to default <form>
Grammar mistake in custom CSS instructions
Log messages contain unhelpful array symbols

Accessibility

Added a ValidHtmlFilter

Application Server Support

Portal does not start up if using -Djboss.vfs.forceVfsJar=true

Authentication

CAS does not work in clustered environments
Users can not sign in if their associated password policy is deleted
LDAP import can cause users to temporarily lose their user group associations
Users are not redirected to the correct page after signing in
NTLM does not allow a user to sign in from multiple browsers
Custom login URL does not work
Users are not redirect to the CAS sign in page
LDAP import interval is not respected
CAS does not redirect to the originally requested page
LDAP incorrectly gets preferences when exporting a user.
Allow user registration to login the user and redirect to a page
User middle names can now be mapped to a LDAP attribute
Middle names are not exported to LDAP
LDAP users that login will import all associated groups without using the group filter
Added CAS authentication by email address
RequestHeaderAutoLogin always import user from LDAP
Setting a screen name generator from a hook does not work with LDAP imports
Wrong number of passwords remembered in password history
Incorrect URL used to verify OpenID authentication
LDAP import does not properly handle users with no screen names and email address
Improved error messages when LDAP fails to connect

Communities

Pending membership requests are not handled when a restricted community is changed to an open community.
The number of members in a community may be incorrect
"Copy Page" & "Link to Page" doesn't show all pages

Control Panel

Malicious JavaScript can be inserted into the Plugins Configuration section of Control Panel
UI interface for migrating Document Library hook
Added ability to copy data to a new database
Upgrading permission algorithm may cause portal to crash
Changing the thumbnail dimensions does not rescale existing thumbnails
Adding a tag with an invalid character causes an exception
Asset Publisher & Tags Admin portlet does not work with DB2
The number of members in a community may be incorrect
Control panel country and region drop downs throw a scripting error when using ie6
"Copy Page" & "Link to Page" doesn't show all pages
Sitemap xml for communities displays duplicate page urls
LDAP import interval is not respected
New database shards do not add plugin tables
User middle names can now be mapped to a LDAP attribute
Uploading an invalid user portrait causes an exception
New option to ignore custom roles when converting permission algorithms
Pagination control in monitoring does not work
Defining permissions for a role is very slow if there is lots of data
Users can still edit their email addresses even if it's restricted to admins only
Page scoped portlet preferences are not read correctly
Searching by article ID does not work
Typo in the monitoring section of the Control Panel
Adding a duplicate tag causes a warning / exception

Database

DB2 has problems with scrollable results
ScrollableResults retrieves only the first column from the query
When the JDBC batch size is set to 0, a divide by zero error is encountered
New portal instance can not be created when database sharding is enabled
SQL queries with "is null" does not work in DB2
Attempting to verify a MySQL table status whose engine column is null results in an error
Added ability to copy data to a new database
DBUtil has been moved to portal-kernel.jar
Custom SQL function for Sybase assumes all values passed in are varchar
Can not change a wiki page's parent
Improved default settings for DB2 in portal.properties
Can not upgrade Document Library to 5.1 EE/5.2 EE in DB2
Automatically generate portal database tables in a shard database
Automatically generate plugin database tables in a shard database
New database shards do not add plugin tables
ResourceAction table's name column is too small
Plugins using Service Builder do not use all database shards
Plugins now automatically use read/write database splitting
HSQL Database Engine updated to version 1.8.1.2
Database columns for URLs are too small
Transaction manager can now be configured in portal.properties
PortalCache throws an IllegalArgumentException because of EntityCacheImpl
DB.build*() methods now requires an extra sqlDir argument
Database error messages are uninformative when using Hypersonic

Export / Import (LAR)

Web Content / Journal articles with images are not exported/imported correctly
Comment ratings are not imported from a LAR
Exporting a website never finishes
Wiki Display portlets are not exported and imported correctly
Polls Display portlets are not exported and imported correctly
Archived configuration settings are not imported from a LAR
Algorithm used to export Document Library files to a LAR has been improved
Algorithm used to deliver a LAR has been improved
Exporting a website is faster
Out of memory error when exporting a website
Exporting a Document Library without the files now degrades gracefully
Can not export a site with a large Document Library
When exporting Web Content (Journal), ampersands are incorrectly encoded
Exporting Web content may not export background URLs correctly
Import\Export LAR data settings are incorrectly displayed
Web content article titles are wrong in Asset Publisher after importing a site
Layouts of type "URL" with relative links to pages in other communities are not preserved on import
New version of Document Library files created when publishing from staging
Temporary files from importing a site is not deleted

Extension Environment

Extension environment is now available as a plugin
Struts-config-ext.xml is not overwritting struts-config.xml

Framework / API

Remove unused references to PermissionUserFinder
Scheduler does not allow multiple scheduler jobs per community
Added a messaging proxy interface
Modified rules engine to use message bus proxy
Release constants now accessible from plugins
Added createXXXURL methods to LiferayPortletResponse
Plugins can now use PropsKeys
Added ability to fetch Groups by companyId
The PropsUtil in portal-impl and portal-kernel behave differently
Added new utility methods to PortalUtil
AggregateClassLoader does not work
Rules engine updated to use Drools 5
Added support for additional rule engine languages
Extending service builder generated classes has been simplified
Deprecated ByteArrayMaker
Hot deployed language hooks do not override default language keys
Added a new method to filter properties by a prefix
Added a new isDuplicateLanguageCode() method to LanguageUtil
Added an auditing framework
"ant setup-eclipse" in plugins SDK does not properly create .classpath entries
DB constants now accessible from plugins
Added BeanShell and Javassist
Added a SimplePojoClp class to simplify serializing POJOs between class loaders
Added ReadWriteLockRegistry utility class
Added a byte array cache
Service builder incorrectly generates ORDER BY for compound primary keys
ScreenNameGenerator, ScreenNameValidator, LiberalScreenNameValidator moved to portal-service
API used to access the cache is inconsistent
Added a NoSuchModelException class
Updated BasePersistence to take advantage of generics
PortalUtil.getModel() renamed to PortalUtil.getBaseModel()
Added ability to set the maximum queue size in message bus
Plugins now have accesses to PropsUtil.getProperties()
DBUtil has been moved to portal-kernel.jar
Added methods for adding default groups, roles, and user groups for users.
Added MethodComparator class
The upgrade process is now available to plugins
Synchronous messages no longer has to wait for a timeout if no service provider is registered
Added StreamUtil for reading and writing output streams
Added a lazy StringBuilder
*ParamUtil classes can now take a PortletRequest as a parameter
New method to retrieve the global lib directory
Added XMLTask to development environment
New lock convenience methods added to DLFileEntry
Added a CoalescedPipe
Add new finder methods for MB Threads
Added a LRU Cache
Added a DeterminateKeyGenerator
Updated Spring to use JDK 5
New write method for FileUtil
Removed extraneous logic from thread caches
Web key VM_VARIABLES is not available from plugins
Events are not serialized across plugins
Plugins using Service Builder do not use all database shards
PortalUtil.getUploadPortletRequest() now takes a PortletRequest
Cache classes moved to new package
Added a simple XML Element class
Content length and type now available from HTTP proxy response
Dockbar portlet is missing from PortletKeys
Added new getCompanyGroups() method to GroupLocalServiceUtil
Portlet render parameters are not shared between layouts
Portlet window states are not being saved in a session
Setting wrong c3p0 properties does not cause an error
Transaction manager can now be configured in portal.properties
PropsUtil in kernel now accepts a Filter
Counter service does not work with JTA
Added new getDateValues() method to GetterUtil and ParamUtil
Added new clone() methods to ArrayUtil
Removed unused methods in PortalUtil
Cannot view document library file or add pages when user does not have group membership
Added getProgress() method to ProgressTracker
PortletKeys is missing multiple keys
Added additional get methods to PrefsPropsUtil
Http class is missing header methods
Added new getWrappedSession() method to HttpSessionWrapper
MimeTypesUtil.getContentType() now gives preference to the file name
Added new constant to ContentTypes for Microsoft Word documents
Wrong author information in auto generated files

High Availability / Clustering

CAS does not work in clustered environments
New portal instance can not be created when database sharding is enabled
Improved Ehcache performance in large clusters
Enabling clustering for MessageBus has been simplified
Cannot send a cluster link message to self node
com.liferay.util.servlet.Header cannot be replicated to cluster members
PortalConnector does not recognize HTTP/AJP connector specific attributes
Automatically generate portal database tables in a shard database
Clustering does not work in Linux/Unix with IPv6
Automatically generate plugin database tables in a shard database
New database shards do not add plugin tables
Cache creation errors during sever start up
Plugins using Service Builder do not use all database shards
Multicast settings now configurable from portal.properties
ClusterLink does not have a destroy() method
Added net interface binding information for ClusterLink
Plugin configuration settings are not propagated to other nodes in a cluster
Added a separate channel for ClusterLink control
Refactored cluster link to have separate receiver logic

JavaScript

Added a Language Filter to speed up page loading time
Pages now load 100-200ms faster
Tags*Selector breaks if curTags* is not specified
Control panel country and region drop downs throw a scripting error when using ie6
Calendar picker does not set the current day when "today" link is clicked
Compressed CSS/JavaScript are now cached
Link for multiple file uploader does not appear
The check for maximum number of characters on input fields is validated incorrectly

Localization

Added a Language Filter to speed up page loading time
Hot deployed language hooks do not override default language keys
Setting the localization in the URL does not work
Added a new isDuplicateLanguageCode() method to LanguageUtil
ThemeDisplay.isI18n() returns incorrect result after setting language to null
Multiple languages using the same URL causes poor SEO
Web Content/Journal tokens are incorrect if the URL is contains the language
Friendly URLs can not start with a locale + / does not work with virtual hosts
Date input field is not localized
Added new toW3cLanguageId() methods to LocaleUtil
Unlocalized phrase in WSRP portlet
User language can only be changed once

Manage Pages

Multiple pages can have the same id
Changing the friendly URL of a page will cause an exception

Permissions

Guest users become Message Board moderators if given permission to add messages
Power Users can view documents added to My Community via WebDAV
A member of an organization or user group has membership access to all organizations and user groups
Users without permission can view images through the slide show
Using RoleLocalServiceUtil.hasUserRoles() with a community role now causes an exception
An exception occurs if a user views a poll he does not have permission to view
Draft Blog entries are displayed
Can not navigate to a community if the user does not have permission to view the first page
Public checkbox does not account for the default guest view permissions
Guest can be given permission to assign roles
Users who belong to a community via an organization do not have any community role
The "Manage Pages" permission overrides the "Publish to Live" permission
The Community Member role can still be given or removed from a user affiliated with a community
Permission checks for Organization roles are not working

Plugin Hooks

Unable to override ScreenNameValidator through hooks
Unable to override ScreenNameGenerator through hooks
Plugin hooks can now override dl.hook.impl
Plugin hooks can now override mail.hook.impl and image.hook.impl
Plugin hooks can now override services and models
Hot deployed language hooks do not override default language keys
Plugin hooks can now override auto/hot.deploy.listeners
Plugin hooks can now override users.screen.name.generator/validator
Property values changes when multiple plugin hooks modify portal.properties
Plugin hooks do not override some portal properties
Hook deployment causes files to be periodically corrupted
value.object.listeners.* properties do not take more than one class
Setting a screen name generator from a hook does not work with LDAP imports
Class loading issues with plugins

Plugin Portlet - Chat

Portal Poller may cause application server to lock up
Chat portlet does not work if the portal is not deployed in the ROOT context

Plugin Portlet - Google Maps

Google map portlet is not displaying map in IE6

Plugin Portlet - WOL

JIRA portlet no longer synchronizes with LPE

Plugin Portlet - WSRP

Can not edit the configuration of a WSRP remote portlet
WSRP incorrectly requires users to agree to Terms of Use
Improved support for redirects in WSRP
Portlets can not load resources through WSRP
Can not reply in Message Boards through WSRP
RenderURLParams taglib is now WSRP aware
Images do not show up in WSRP consumer portlet
Stopping a portlet on the producer results in being unable to manage portlets on the consumer
Portlet mode is not stored in shared session
WSRP proxied portlets goes into widget mode after a second submit
WSRP consumer portlet does not maintain sessions correctly
WSRP doGetResource() method does not include form data
"Return to Full Page" does not work with WSRP proxied portlets
Unlocalized phrase in WSRP portlet
Improve robustness of WSRP request parsing
WSRP proxied portlets can now specify its category
WSRP unable to add portlet to consumer when producer contains portlet without display name
WSRP Portlet throws exceptions upon deployment
Can not add a WSRP Consumer

Plugin Portlets

Portlet 2.0 (JSR-286) Compliance - Public render parameters from plugin portlets
Memory leak with Spring
Exceptions when using LocalizationUtil from plugins
Plugin portlets now defaults to the same transaction manager as the portal
util-java.jar in plugins is not upgraded
Checking permissions from a plugin causes exceptions
Class loading issues with plugins
Plugin portlets do not deploy if there is no <guest-unsupported>

Plugin Web - Solr

Class loading issue with with Solr
Solr web plugin causes exceptions

Plugins

Extension environment is now available as a plugin
Plugins cannot reference portal beans
Plugins can now dynamically modify portlet-hbm.xml
Liferay portal is unable to invoke services from plugins
Web key VM_VARIABLES is not available from plugins
Events are not serialized across plugins
Plugins now automatically use read/write database splitting

Portlet

Comment ratings are not imported from a LAR
A newly deployed ajaxable portlet cannot be refreshed until the whole page has been reloaded
Restoring an archived configuration setup may not work
Portlets defined as static in the portal-ext.properties are still movable
You can add a new application above Static Portlet
Cannot add a portlet between a start and end static portlet
WAI and IFrame connector portlets do not directly display the application
Portlet widgets generates invalid HTML
Adding to the header in PortletResponseImpl is not implemented correctly
Netvibes widgets may not work

Portlet - Activities

Malicious JavaScript can be inserted into the Activities portlet

Portlet - Admin

UI interface for migrating Document Library hook
Added ability to copy data to a new database
Upgrading permission algorithm may cause portal to crash
Changing the thumbnail dimensions does not rescale existing thumbnails
New database shards do not add plugin tables
New option to ignore custom roles when converting permission algorithms

Portlet - Asset Publisher

Passing multiple classNameIds to TagsAssetLocalServiceUtil causes SQL exceptions
The maximum items setting in Blogs & Asset Publisher is ignored by the portlet
Asset Publisher & Tags Admin portlet does not work with DB2
Web content article titles are wrong in Asset Publisher after importing a site

Portlet - Blog

Blogs comment notification email does not include the comment in the email
No confirmation messages appear when adding blogs and bookmarks in the Control Panel
Unable to add comments to blogs when viewing it through the blog aggregator
The maximum items setting in Blogs & Asset Publisher is ignored by the portlet
Draft Blog entries are displayed
Drafts of existing blogs entries are not saved
Blogs no longer ping Google if domain is localhost

Portlet - Bookmarks

No confirmation messages appear when adding blogs and bookmarks in the Control Panel

Portlet - Calendar

Exported ICS Files cannnot be imported by Outlook 2003
Settings for repeating events are not correct
Deleted calendar events appear in search results

Portlet - Document Library

Document library throws an exception when moving a file using AdvancedFileSystemHook
Power Users can view documents added to My Community via WebDAV
Document Library does not return the latest revision of a document
UI interface for migrating Document Library hook
Cannot move documents in Document Library Portlet
Items in Document Library cannot be moved to other folders when using JCR Hook
WebDAV response does not include Content-Type header
Folders in Document Library Display portlet show the action button
Files created using WebDAV have weird characters in the file name
WebDAV server requests now includes user agent information
Cannot edit files using WebDAV on OS X
Document library download box comes up slow when downloading a large file
Algorithm used to update files via WebDAV has been improved
Algorithm used to export Document Library files to a LAR has been improved
Document Library is more responsive when adding/updating files
Exporting a Document Library without the files now degrades gracefully
Document Library may incorrectly set a document's mime type
Can not upload files larger than 2GB
Can not export a site with a large Document Library
New lock convenience methods added to DLFileEntry
DLFileRank related exception when accessing Document Library
Document Library does not allow zero sized files
Can not create a sub-folder with the name of an existing file
Auto login does not work when directly accessing documents and articles
Cannot upload files with certain characters in the filename to Message Board and Wiki portlets
Document library throws an exception when changing the parent folder that contains a large number of subfolders
Deleted Document Library folders are not deleted from file system
dl.file.max.size is not respected
Link for multiple file uploader does not appear
OpenOffice documents are not searched
Content of MS Office 2007 documents are now searchable
Added document conversion for Office 2007 documents
Can't set Document Library's Extra Settings Properties.
New version of Document Library files created when publishing from staging
Improved exception messages for FileSystemHook
Flash Uploader is improperly displaying the language key
Add Document Library icons for Office 2007 documents

Portlet - Enterprise Admin

A member of an organization or user group has membership access to all organizations and user groups
Malicious JavaScript can be inserted into the Plugins Configuration section of Control Panel
Page information that is hidden when updating user information will not be retained when saving
Control panel country and region drop downs throw a scripting error when using ie6
Sitemap xml for communities displays duplicate page urls
LDAP import interval is not respected
User middle names can now be mapped to a LDAP attribute
Uploading an invalid user portrait causes an exception
LDAP users that login will import all associated groups without using the group filter
Pagination control in monitoring does not work
Defining permissions for a role is very slow if there is lots of data
Typo in the monitoring section of the Control Panel

Portlet - IFrame

IFrame portlet vulnerable to password theft

Portlet - Image Gallery

Power Users can view documents added to My Community via WebDAV
An Image Gallery folder with a large amount of images will throw an out of memory error when a user attempts to delete it
Files created using WebDAV have weird characters in the file name
WebDAV server requests now includes user agent information
Cannot edit files using WebDAV on OS X
Changing the thumbnail dimensions does not rescale existing thumbnails
Document Library may incorrectly set a document's mime type
Can not upload files larger than 2GB
Image Gallery images have invalid mime type
Can not export a site with a large Document Library
Cannot upload files with certain characters in the filename to Message Board and Wiki portlets
Image gallery does not display image on popup using ie6
Link for multiple file uploader does not appear
Custom sized images are not deleted
Flash Uploader is improperly displaying the language key

Portlet - Journal

Web content can still be copied if a user does not have view permissions
Web Content / Journal articles with images are not exported/imported correctly
An old version of a Journal article / Web Content is displayed
Web Content structure elements are now indexed separately
Sorting Web Content / Journal articles by version does not work
ArticleDisplay now has access to the article's tags
Editing a Web Content article removes all white space from the article
Web Content/Journal tokens are incorrect if the URL is contains the language
Web Content List portlet display articles before the display date
Added ability to customize the available Web Content template language types
When exporting Web Content (Journal), ampersands are incorrectly encoded
Exporting Web content may not export background URLs correctly
No articles are displayed in the Web Content List portlet
Errors are not shown when configuring Web Content Display portlet
Basic search in Web Content Display gives irrelevant results
Web Content articles are published to live even if configured otherwise
Can not preview expired web content
Web content display causes images to overlap over the portlet borders
$saxReaderUtil does not work in velocity templates
Old version of web content is indexed when reindexing search indexes
Changing template does not get published from staging
Searching by article ID does not work
Journal structure searching with multiple words does not work

Portlet - Language

Malicious JavaScript can be inserted into the Language portlet

Portlet - Message Boards

Guest users become Message Board moderators if given permission to add messages
Cannot edit a Message Board message created by a deleted user
New threads are created for email replies to the message boards
Message boards mailing lists are not checked at a regular interval
Users end up on the wrong tab using search in Message Boards
Adding a URL or image to the Message Boards text area erases the current content
Message Boards messages sent through a mailing list have incorrect URLs
Message Boards mailing list does not work
Performance improvement for comments
Improved navigation in Message Boards portlet
Add new finder methods for MB Threads
The previous and next buttons may not work in Message Board threads
Cannot upload files with certain characters in the filename to Message Board and Wiki portlets
Default thread splitting message is missing
Can not reply in Message Boards through WSRP
Message board posts may be displayed with syntactically incorrect HTML
Message board post count does not reflect correct number when you delete a message
Deleting a comment will lock MBCategory table
Added "id" attribute to Message Boards configuration
Long lines extend out of the Message Board portlet

Portlet - Nested Portlets

Nested Portlets causes slow performance
Nested Portlets contains invalid id attributes in the HTML
Portlets in a Nested Portlet are not correctly added to a page

Portlet - Polls

Polls Display portlets are not exported and imported correctly
An exception occurs if a user views a poll he does not have permission to view
Incorrect poll choice is deleted
Extra period in Polls portlet after a poll has expired

Portlet - RSS

Column headers are incorrect when selecting RSS header/footer

Portlet - Search

Possible XSS vulnerability in search portlet
Directory search results do not link to the user details page

Portlet - Shopping

Stock quantity in Shopping portlet cannot be edited

Portlet - Sign In

Add ability to restrict user full names during registration
More helpful error messages when creating an account
Users can not sign in/out due to session listeners

Portlet - Software Catalog

Cannot add licenses or framework versions to software catalog
Software catalog UI is not consistent

Portlet - Tags Admin

Adding a tag with an invalid character causes an exception
Asset Publisher & Tags Admin portlet does not work with DB2
Updating a tag does not update the search index of assets with the tag
Adding a duplicate tag causes a warning / exception

Portlet - Wiki

Creating a new Wiki node may sometimes end up editing an existing node
Cannot go to another Wiki Node after adding a Wiki Page
Adding Wiki portlet to a page may cause a duplicate entry error
Wiki pages with a space in the title does not work with a virtual host
New Wiki pages can be marked as a minor edit
Changing a Wiki page's parent can not be reverted
Backslashes are not caught in Wiki title
Creating a new Wiki page may inadvertently rename an existing page
Wiki Display portlets are not exported and imported correctly
Incoming Links in the Wiki portlet are case sensitive and thus will not show some links that belong in that list
Wiki nodes still appear in the portlet configuration after being deleted
Can not change a wiki page's parent
Cannot upload files with certain characters in the filename to Message Board and Wiki portlets
Moved wiki pages appears in search results
Moved Wiki pages appear twice in the list of child pages
The order of Wiki nodes displayed in the top links of the portlet do not consistently reflect the settings in Display Settings

Reporting

Added support for Jasper XLS data source to reporting framework
Added an audit tracking framework

Rules Engine

Modified rules engine to use message bus proxy
Rules engine updated to use Drools 5
Added support for additional rule engine languages

Search

Web Content structure elements are now indexed separately
Search index is not updated after an upgrade
Lucene has been refactored to improve performance
Reduced time needed to reindex search index
Assets can be searched by a tag even after the tag is deleted
Lucene search writer is now thread safe
Lucene does not shutdown properly
Multiple search index accessor may exist
Add ability to remove portlets from the list of portlets searched by the search Portlet
Can not add Liferay as a search provider
OpenOffice documents are not searched
Updating a tag does not update the search index of assets with the tag
Content of MS Office 2007 documents are now searchable
Moved wiki pages appears in search results
Old version of web content is indexed when reindexing search indexes

Service Builder

Service builder does not wok with entities named *Service
DB.build*() methods now requires an extra sqlDir argument
Service builder generated classes do not correctly use Counter and Resource

Staging

Staging and remote publishing does not allow you to schedule an event
Community Members are not acknowledged as reviewers when attempting to Propose Publication in the Staging Workflow
Deleting proposals leave behind dirty data in the database
Deactivating staging while browsing the staged pages causes an exception
Can not export a site with a large Document Library
Staging with workflow enabled will not allow you to delete live pages
Staging and remote publishing do not show the correct time when the user changes timezone
Staging and remote publishing input scheduler year does not allow for future year selection
Web Content articles are published to live even if configured otherwise
Web content article titles are wrong in Asset Publisher after importing a site
Changing template does not get published from staging
New version of Document Library files created when publishing from staging
The "Manage Pages" permission overrides the "Publish to Live" permission

TagLib

<liferay-util:include> can now be used to include pages from a plugin
Added support for cssClass attribute in all <liferay-ui:input-*> taglibs
Page Iterator does not allow users to redefine how many pages are shown in the page drop down
Comments area is blank if there are no comments
$theme.getSetting("my-setting")
Add html classnames to search result table
Back button becomes null when using javascript to return to the previous page.
Time input fields do not use user's locale
RenderURLParams taglib is now WSRP aware
<liferay-ui:page-iterator> generates invalid JavaScript code
Improved performance of taglibs
<liferay-ui:message> now accepts arguments
Date input field is not localized
The check for maximum number of characters on input fields is validated incorrectly
Improve discussions to allow multiple discussions per portlet per page
liferay-ui.tld does not validate
<liferay-util:include> and <liferay-security:doAsURL>can not be used in plugins
Thumbs rating system does not display accurately until the page is refreshed

Themes

$theme.getSetting("my-setting")
Add html classnames to search result table
Added support for FreeMarker themes
$saxReaderUtil does not work in velocity templates
Add html classnames to make styling easier
Added CSS classes for signed in and signed out states
WAP DTD url has changed
Newly added portlets ignores the theme's CSS

Third Party Libraries

MySQL Connector/J updated to version 5.1.12
Memory leak with Quartz
Memory leak with Spring
MySQL Connector/J updated from 5.0.7 to 5.0.8
Commons Pool updated from 1.3.0 to 1.5.2
Lucene updated from 2.3.2 to 2.9.0
Jackrabbit updated from 1.5.0 to 1.6.0
Eclipse JDT Core Batch Compiler updated from 3.4.1 to 3.5.1
Commons IO updated from 1.3.2 to 1.4.0
Hibernate updated from 3.3.1 to 3.3.2
Quartz Scheduler updated from 1.6.0 to 1.6.6
FreeMarker updated from 2.3.12 to 2.3.15
JGroups updated from 2.6.11 to 2.6.13
Selenium Remote Control updated from 1.0.0 B2 to 1.0.1
Ehcache updated to 1.7.2
AspectJ updated to version 1.6.8
Updated Apache Commons libraries
Jackrabbit updated to version 1.6.1
jTDS updated to version 1.2.5
HSQL Database Engine updated to version 1.8.1.2
Compass updated to version 2.2.0
Apache POI updated to version 3.6
Velocity updated to version 1.6.3
jabsorb updated to version 1.3.1
Display Tag Library updated to version 1.2
Mozilla Charset Detectors updated to version 1.1
PostgreSQL JDBC Driver updated to version 8.4-701
JCommon updated to version 1.0.16
JFreeChart updated to version 1.0.13
OpenID 4 Java updated to version 0.9.5.593
Removed OpenXRI library
SLF4J updated to version 1.5.10
Geo Tools updated to version 2.6.1
Added POI OOXML and XMLBeans jars
Setting wrong c3p0 properties does not cause an error
JODConverter updated to version 2.2.2
NekoHTML updated to version 1.9.14
Added spring-test.jar
Ant updated to version 1.8.0
Quartz updated to version 1.7.2
Jericho HTML Parser updated to version 3.1

Upgrade

Added a Language Filter to speed up page loading time
SQL queries with "is null" does not work in DB2
Modified rules engine to use message bus proxy
Search index is not updated after an upgrade
Service builder incorrectly generates ORDER BY for compound primary keys
The upgrade process is now available to plugins
Can not upgrade Document Library to 5.1 EE/5.2 EE in DB2
Can not upgrade because of changes to the database
Upgrading in JBoss produces multiple database warnings
Can not upgrade from 4.2.2 to 4.3.0
Database columns for URLs are too small
util-java.jar in plugins is not upgraded
com.liferay.portal.UserPortraitException
Status: Deprecated
New class: com.liferay.portal.UserPortraitSizeException, com.liferay.portal.UserPortraitTypeException
See: LPE-1948
com.liferay.portal.kernel.bi.reporting.ReportEngine
Method: registerDataSource(String dataSourceName, DataSource dataSource)
Status: Deleted
See: LPE-1590
Method: setDefaultDataSouce(DataSource dataSource)
Status: Deleted
See: LPE-1590
Method: unregisterDataSource(String dataSourceName)
Status: Deleted
See: LPE-1590
com.liferay.portal.kernel.bi.reporting.ReportRequest
Note: Changed from an interface to a concrete class
See: LPE-1590
com.liferay.portal.kernel.bi.rules.AdminRequestMessage
Status: Deleted
See: LPE-1385
com.liferay.portal.kernel.bi.rules.AdminRequestType
Status: Deleted
See: LPE-1385
com.liferay.portal.kernel.bi.rules.ExecutionRequestMessage
Status: Deleted
See: LPE-1385
com.liferay.portal.kernel.bi.rules.RulesEngineUtil
Method: add(String domainName, ResourceRetriever resourceRetriever)
Status: Deleted
New method: add(String domainName, RulesResourceRetriever RulesResourceRetriever)
See: LPE-1417
Method: add(String domainName, ResourceRetriever resourceRetriever, ClassLoader... classloaders)
Status: Deleted
New method: add(String domainName, RulesResourceRetriever RulesResourceRetriever, ClassLoader... classloaders)
See: LPE-1417
Method: execute(ResourceRetriever resourceRetriever, List<Fact<?>> facts)
Status: Deleted
New method: execute(RulesResourceRetriever RulesResourceRetriever, List<Fact<?>> facts)
See: LPE-1417
Method: execute(ResourceRetriever resourceRetriever, List<Fact<?>> facts, ClassLoader... classloaders)
Status: Deleted
New method: execute(RulesResourceRetriever RulesResourceRetriever, List<Fact<?>> facts, ClassLoader... classloaders)
See: LPE-1417
Method: execute(ResourceRetriever resourceRetriever, List<Fact<?>> facts, Query query, ClassLoader... classloaders)
Status: Deleted
New method: execute(RulesResourceRetriever RulesResourceRetriever, List<Fact<?>> facts, Query query, ClassLoader... classloaders)
See: LPE-1417
Method: update(String domainName, ResourceRetriever resourceRetriever)
Status: Deleted
New method: update(String domainName, RulesResourceRetriever RulesResourceRetriever)
See: LPE-1417
Method: update(String domainName, ResourceRetriever resourceRetriever, ClassLoader... classloaders)
Status: Deleted
New method: update(String domainName, RulesResourceRetriever RulesResourceRetriever, ClassLoader... classloaders)
See: LPE-1417
com.liferay.portal.kernel.bi.rules.proxy.RulesEngineProxy
Status: Deleted
See: LPE-1385
com.liferay.portal.kernel.cache.MultiVMPoolUtil
Method: get(PortalCache portalCache, String key)
Status: Deprecated
New call: portalCache.get(key)
See: LPE-1526
Method: put(PortalCache portalCache, String key, Object obj)
Status: Deprecated
New call: portalCache.put(key, obj)
See: LPE-1526
Method: remove(PortalCache portalCache, String key)
Status: Deprecated
New call: portalCache.remove(key)
See: LPE-1526
com.liferay.portal.kernel.cache.SingleVMPoolUtil
Method: get(PortalCache portalCache, String key)
Status: Deprecated
New call: portalCache.get(key)
See: LPE-1526
Method: put(PortalCache portalCache, String key, Object obj)
Status: Deprecated
New call: portalCache.put(key, obj)
See: LPE-1526
Method: put(PortalCache portalCache, String key, Object obj, int timeToLive)
Status: Deprecated
New call: portalCache.put(key, obj, timeToLive)
See: LPE-1526
Method: remove(PortalCache portalCache, String key)
Status: Deprecated
New call: portalCache.remove(key)
See: LPE-1526
com.liferay.portal.kernel.dao.db.DB
Method: buildCreateFile(String databaseName)
Status: Deleted
New method: buildCreateFile(String sqlDir, String databaseName)
See: LPE-2138
Method: buildCreateFile(String databaseName, int population)
Status: Deleted
New method: buildCreateFile(String sqlDir, String databaseName, int population)
See: LPE-2138
Method: buildSQLFile(String fileName)
Status: Deleted
New method: buildSQLFile(String sqlDir, String fileName)
See: LPE-2138
com.liferay.portal.kernel.dao.orm.EntityCache
Method: setLocalCacheEnabled(boolean localCacheEnabled)
Status: Deleted
See: LPE-1922
com.liferay.portal.kernel.dao.orm.EntityCacheUtil
Method: setLocalCacheEnabled(boolean localCacheEnabled)
Status: Deleted
See: LPE-1922
com.liferay.portal.kernel.dao.orm.FinderCache
Method: setLocalCacheEnabled(boolean localCacheEnabled)
Status: Deleted
See: LPE-1922
com.liferay.portal.kernel.dao.orm.FinderCacheUtil
Method: setLocalCacheEnabled(boolean localCacheEnabled)
Status: Deleted
See: LPE-1922
com.liferay.portal.kernel.dao.search.SearchContainer
Method: getMaxPages()
Status: Deprecated
New method: PropsUtil.get("search.container.page.iterator.max.pages")
See: LPE-1735
Method: setMaxPages(int maxPages)
Status: Deprecated
See: LPE-1735
com.liferay.portal.kernel.language.LanguageUtil
Method: format(long companyId, Locale locale, String pattern, Object argument)
Status: Deprecated
New method: format(Locale locale, String pattern, Object argument)
See: LPE-1430
Method: format(long companyId, Locale locale, String pattern, Object argument, boolean translateArguments)
Status: Deprecated
New method: format(Locale locale, String pattern, Object argument, boolean translateArguments)
See: LPE-1430
Method: get(long companyId, Locale locale, String key)
Status: Deprecated
New method: get(Locale locale, String key)
See: LPE-1430
Method: get(long companyId, Locale locale, String key, String defaultValue)
Status: Deprecated
New method: get(Locale locale, String key, String defaultValue)
See: LPE-1430
com.liferay.portal.kernel.language.UnicodeLanguageUtil
Method: format(long companyId, Locale locale, String pattern, Object argument)
Status: Deprecated
New method: format(Locale locale, String pattern, Object argument)
See: LPE-1430
Method: get(long companyId, Locale locale, String key)
Status: Deprecated
New method: get(Locale locale, String key)
See: LPE-1430
Method: get(long companyId, Locale locale, String key, String defaultValue)
Status: Deprecated
New method: get(Locale locale, String key, String defaultValue)
See: LPE-1430
com.liferay.portal.kernel.messaging.config.AbstractMessagingConfigurator
Method: init()
Status: Deprecated
New method: afterPropertiesSet()
See: LPE-2099
com.liferay.portal.kernel.messaging.jmx.JMXMessageListener
Method: init()
Status: Deprecated
New method: afterPropertiesSet()
See: LPE-2099
com.liferay.portal.kernel.util.Database
Status: Deprecated
New class: com.liferay.portal.kernel.dao.db.DB
See: LPE-1558
com.liferay.portal.kernel.util.DatabaseUtil
Status: Deprecated
New class: com.liferay.portal.kernel.dao.db.DBFactoryUtil
See: LPE-1558
com.liferay.portal.kernel.util.PropsKeys
Variable: MIME_TYPES
Status: Deleted
See: LPE-1741
com.liferay.portal.kernel.zip.ZipReader
Note: this class has been changed to an interface. The implementation can be found in ZipReaderImpl.
See: LPE-1747
Method: ZipReader(File file)
Status: Deleted
New call: ZipReaderFactoryUtil.getZipReader(file)
See: LPE-1747
Method: getEntries()
Return type: changed from Map<String, byte[]> to List<String>
See: LPE-1747
Method: getFolderEntries()
Status: Deleted
See: LPE-1747
Method: getFolderEntries(String path)
Return type: changed from List<ObjectValuePair<String, byte[]>> to List<String>
See: LPE-1747
com.liferay.portal.kernel.zip.ZipWriter
Note: this class has been changed to an interface. The implementation can be found in ZipWriterImpl
See: LPE-1747
Method: ZipWriter()
Status: Deleted
New call: ZipWriterFactoryUtil.getZipWriter()
See: LPE-1747
Method: finishWithStream()
Status: Deleted
See: LPE-1747
com.liferay.portal.lar.PortletDataContext
Method: getZipEntries()
Return type: changed from Map<String, byte[]> to List<String>
See: LPE-1747
Method: getZipFolderEntries()
Return type: changed from Map<String, List<ObjectValuePair<String, byte[]>>> to List<String>
See: LPE-1747
Method: getZipFolderEntries(String path)
Return type: changed from List<ObjectValuePair<String, byte[]>> to List<String>
See: LPE-1747
com.liferay.portal.security.auth.ScreenNameGenerator
Note: this class has been changed to an interface. The implementation can be found in DefaultScreenNameGenerator
See: LPE-1803
com.liferay.portal.security.auth.ScreenNameValidator
Note: this class has been changed to an interface. The implementation can be found in DefaultScreenNameValidator
See: LPE-1802
com.liferay.portal.service.LayoutLocalService
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.LayoutLocalServiceUtil
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.LayoutLocalServiceWrapper
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.LayoutService
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.LayoutServiceUtil
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.LayoutServiceWrapper
Method: exportLayoutsAsStream(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportLayoutsAsFile(long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
Method: exportPortletInfoAsStream(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
Status: Deleted
New method: exportPortletInfoAsFile(long plid, long groupId, java.lang.String portletId, Map<String, String[]> parameterMap, Date startDate, Date endDate)
See: LPE-1747
com.liferay.portal.service.PortletLocalService
Method: deployRemotePortlet(Portlet portlet)
Status: Deleted
New method: deployRemotePortlet(Portlet portlet, String categoryName)
See: LPE-2100
com.liferay.portal.service.PortletLocalServiceUtil
Method: deployRemotePortlet(Portlet portlet)
Status: Deleted
New method: deployRemotePortlet(Portlet portlet, String categoryName)
See: LPE-2100
com.liferay.portal.service.PortletLocalServiceWrapper
Method: deployRemotePortlet(Portlet portlet)
Status: Deleted
New method: deployRemotePortlet(Portlet portlet, String categoryName)
See: LPE-2100
com.liferay.portal.service.UserLocalServiceUtil
Method: getPermissionUsers( long companyId, long groupId, String name, String primKey, String actionId, String firstName, String middleName, String lastName, String emailAddress, boolean andOperator, int start, int end)
Status: Deleted
See: LPE-1530
Method: getPermissionUsersCount(long companyId, long groupId, String name, String primKey, String actionId, String firstName, String middleName, String lastName, String emailAddress, boolean andOperator)
Status: Deleted
See: LPE-1530
com.liferay.portal.service.persistence.PermissionUserFinderUtil
Status: Deleted
See: LPE-1530
com.liferay.portal.tools.sql.DB
Status: Deprecated
New class: com.liferay.portal.kernel.dao.db.DB
See: LPE-1558
com.liferay.portal.util.Portal
Method: getBasePersistence(BaseModel<?> baseModel)
Status: Deleted
See: LPE-2072
Method: getBasePersistence(String servletContextName, String className)
Status: Deleted
See: LPE-2072
Method: getDB()
Status: Deleted
New method: com.liferay.portal.kernel.dao.db.DBFactoryUtil.getDB()
See: LPE-1558
Method: getServletContextName(BaseModel<?> baseModel)
Status: Deleted
See: LPE-2072
Method: runSQL(String sql)
Status: Deleted
New method: com.liferay.portal.kernel.dao.db.DBFactoryUtil.getDB().runSQL(sql)
See: LPE-1558
com.liferay.portal.util.PortalUtil
Method: getBasePersistence(BaseModel<?> baseModel)
Status: Deleted
See: LPE-2072
Method: getBasePersistence(String servletContextName, String className)
Status: Deleted
See: LPE-2072
Method: getDB()
Status: Deprecated
New method: com.liferay.portal.kernel.dao.db.DBFactoryUtil.getDB()
See: LPE-1558
Method: getModel(Resource resource)
Status: Deprecated
New method: getBaseModel(Resource resource)
See: LPE-1532
Method: getModel(String modelName, String primKey)
Status: Deprecated
New method: getBaseModel(Resource resource)
See: LPE-1532
Method: getPortletDescription(String portletId, long companyId, Locale locale)
Status: Deprecated
New method: getPortletDescription(String portletId, Locale locale)
See: LPE-1430
Method: getPortletTitle(Portlet portlet, long companyId, Locale locale)
Status: Deprecated
New method: getPortletTitle(Portlet portlet, Locale locale)
See: LPE-1430
Method: getServletContextName(BaseModel<?> baseModel)
Status: Deleted
See: LPE-2072
Method: runSQL(String sql)
Status: Deprecated
New method: com.liferay.portal.kernel.dao.db.DBFactoryUtil.getDB().runSQL(sql)
See: LPE-1558
com.liferay.portal.util.comparator.PortletCategoryComparator
Method: PortletCategoryComparator(long companyId, Locale locale)
Status: Deprecated
New method: PortletCategoryComparator(Locale locale)
See: LPE-1430
com.liferay.portal.util.comparator.PortletTitleComparator
Method: PortletTitleComparator(long companyId, Locale locale)
Status: Deprecated
New method: PortletTitleComparator(Locale locale)
See: LPE-1430
com.liferay.portlet.documentlibrary.model.DLFileEntry
Method: getExtraSettingsProperties()
Note: This method now returns a UnicodeProperties instead of a Properties
See: LPE-2102
Method: setExtraSettingsProperties(Properties extraSettingsProperties)
Status: Deleted
New method: setExtraSettingsProperties(UnicodeProperties extraSettingsProperties)
See: LPE-2102
com.liferay.portlet.documentlibrary.model.DLFileEntryWrapper
Method: getExtraSettingsProperties()
Note: This method now returns a UnicodeProperties instead of a Properties
See: LPE-2102
Method: setExtraSettingsProperties(Properties extraSettingsProperties)
Status: Deleted
New method: setExtraSettingsProperties(UnicodeProperties extraSettingsProperties)
See: LPE-2102
com.liferay.portlet.imagegallery.service.IGImageLocalService
Method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries)
Status: Deprecated
New method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries, String contentType)
See: LPE-1745
com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil
Method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries)
Status: Deprecated
New method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries, String contentType)
See: LPE-1745
com.liferay.portlet.imagegallery.service.IGImageLocalServiceWrapper
Method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries)
Status: Deprecated
New method: updateTagsAsset(long userId, IGImage image, String[] tagsCategories, String[] tagsEntries, String contentType)
See: LPE-1745
com.liferay.util.servlet.ServletResponseUtil
Method: cleanUp(InputStream inputStream)
Status: Deprecated
New method: StreamUtil.cleanUp(inputStream)
See: LPE-1645
Method: cleanUp(OutputStream outputStream, InputStream inputStream)
Status: Deprecated
New method: StreamUtil.cleanUp(inputStream, outputStream)
See: LPE-1645
Modified rules engine to use message bus proxy
As part of this improvement, the "spring.configs" property in portal.properties has been modified. If spring.configs has been modified in portal-ext.properties, please make sure your customized spring.configs property is configured to load all necessary spring files.
Service builder incorrectly generates ORDER BY for compound primary keys
To apply this bug fix to custom services, please run Service Builder again in the extension environment and for each portlet that uses Service Builder.
Added a Language Filter to speed up page loading time
This new feature is enabled by default. To revert back to the old behavior, set the following in portal(-ext).properties: com.liferay.portal.servlet.filters.language.LanguageFilter=false
Property values changes when multiple plugin hooks modify portal.properties
If you are currently overriding any property in portal.properties that accepts a comma separated set of values with a plugin hook, please note that the value of the property will now be merged with the original value in portal.property. If you need to completely remove the original value from the property, please use a portal-ext.properties files to first remove the original value.
Updated BasePersistence to take advantage of generics
To take advantage of this improvement if your portlets, please run service builder again. To take advantage of this improvement in an extension environment, the extension environment must be regenerated and service builder must be run again.
Added option to use reCAPTCHA for captcha checks
As part of this improvement, captcha(-ext).properties is no longer used and the properties within this file has been moved into portal(-ext).properties. The following is a list of the properties in captcha(-ext).properties followed by it's corresponding property in portal(-ext).properties. cap.image.height - captcha.engine.simplecaptcha.height cap.image.width - captcha.engine.simplecaptcha.width cap.text.produce - captcha.engine.simplecaptcha.text.producers
CAS does not work in clustered environments
In order to address this issue, the Yale CAS client has been replaced with Jasig CAS client. The Jasig CAS client does not use a validate URL but uses a server URL instead. The server URL should point to the location of the CAS server. For example, https://localhost:8443/cas-web. The Control Panel's user interface (or Enterprise Admin portlet in 5.1.8) has been updated to reflect this change. The server URL setting must be set for CAS to continue working. If you are configuring CAS using portal(-ext).property, add the following property to your property file: cas.server.url=https://localhost:8443/cas-web The old property, cas.validate.url, can safely be removed.
Unable to override ScreenNameValidator through hooks
In portal-ext.properties, if you have users.screen.name.validator=com.liferay.portal.security.auth.ScreenNameValidator this line must be changed to users.screen.name.validator=com.liferay.portal.security.auth.DefaultScreenNameValidator
Unable to override ScreenNameGenerator through hooks
In portal-ext.properties, if you have users.screen.name.generator=com.liferay.portal.security.auth.ScreenNameGenerator this line must be changed to users.screen.name.generator=com.liferay.portal.security.auth.DefaultScreenNameGenerator
Document Library may incorrectly set a document's mime type
The property "mime.types" in portal.property is no longer applicable and has been removed. Additional MIME types should now be added to the file META-INF/mime.types.
/html/portal/css.jsp has been split into multiple files for easier customization
The file /html/portal/css_uniform.jsp has been moved to /html/portal/css/portal/uniform.jspf. If this file has been customized and /html/portal/css.jsp has not been customized, this file must be renamed.
Grammar mistake in custom CSS instructions
The language key "insert-custom-css-that-will-loaded-after-the-theme" has been changed to "insert-custom-css-that-will-be-loaded-after-the-theme". Custom code that uses the old language key should update to the new language key.
Added CAS authentication by email address
This improvement may cause existing CAS authentication to stop working if the following appears in portal(-ext).properties: company.security.auth.type=emailAddress or if "How do users authenticate?" in the Control Panel's (Enterprise Admin portlet in 5.1 EE) settings section is set to "By Email Address". These settings were previously ignored when CAS is used. To ensure CAS continues to work correctly, please remove company.security.auth.type from portal(-ext).properties and set "How do users authenticate?" to "By Screen Name".
Added a separate channel for ClusterLink control
The portal properties cluster.link.channel.properties.X has been renamed to cluster.link.channel.properties.transport.X For example, cluster.link.channel.properties.0 has been renamed to cluster.link.channel.properties.transport.0. If these properties has been set in portal(-ext).properties, they must be renamed or else cluster link may not work correctly.