[frs-243] Hotfix 1836/1886; Railo: NullPointerException in JDBC in some cases, All: Content not flushed in some cases.


Hotfix 1836/1958 for FusionReactor 3.5.1 – Description

This technote describes a fix for two issues, tracked under FR-1836 and FR-1886, in which a user may see a NullPointerException in Railo when performing certain types of JDBC query. Further, on all platforms, content may be truncated or missing when pages produce low-volume output, or which are generated in certain ways.

Symptoms

  • FR-1836: When performing an SQL update using the CFML <cfquery> or <cfupdate> tags, users may – in some cases – see a NullPointerException raised by FusionReactor's ResultSetSurrogate type.
  • FR-1886
    • Tomcat: very short pages may not be flushed correctly to the client.
    • Railo: using the Railo administrator 'Remote Client' mechanism fails with a SAXParseException. XML/SOAP output from Railo could be truncated.
    • JRun: when no file is specified on the URL, JRun fails to load the specified welcome file (usually index.html).
    • Tomcat: JSP Includes + Forwards do not function correctly

Analysis

FR-1836: The JDBC wrapper does not correctly wrap the ResultSet of a query, if the result of the query is null. This occurs when the query is an update, in which there are no generated keys. In this case, the wrapper would create a ResultSetSurrogate which wrapped a null object. The first time any method was called which performed an equivalent operation on the (null) underlying object, a NullPointerException was generated. This has been corrected.

FR-1886: FusionReactor's Wrapper/Stream system has been revised to bring it strictly into line with the J2EE wrapper/proxy pattern. In some cases, local copies of streams were being made and operations were redirected to the copies. These have been removed, and are now directed to the superclass. Several issues (see Symptoms) have been resolved by this change.

Resolution

Customers with FusionReactor 3.5.1, 3.5.2, or 3.5.3 only should apply the attached Hotfix 1836+1886, which resolves this issues noted above.

Instructions for applying the hotfix are supplied in instructions.txt within the hotfix zip file.

Hotfixes are cumulative: any future hotfixes on the FusionReactor 3.5.x stream, up to but not including the next point release, will contain this hotfix (and all earlier hotfixes since the last point release).

Included Hotfixes

  • Hotfix 1721, AMF processor should handle a Target in the same way as a serviceName and serviceMethodName

Withdrawn Hotfixes

  • Hotfix 1744, XML content /Web Services/SOAP in Railo can be truncated and cause errors.
    • Hotfix 1744, which announced itself as FusionReactor 3.5.3, has been withdrawn and should not be applied. Customers with this issue should apply this hotfix instead.

Files

hotfix-FR-1721-1836-1886.zip

Taxonomy

After installation, FusionReactor's "About" page should identify itself as "Revision: 3.5.4, Build: FusionReactor 3.5.x Maintenance Branch.7.19160"

~Hotfix FR 1836+FR-1886 – obf. (Stream: FusionReactor 3.5.x Maintenance Branch, build 7, SVN 19160)

Issue Details

Type: Technote
Issue Number: FRS-243
Components: Compression, Content Filters, Crash Protection, JDBC
Environment:
Resolution: Fixed
Last Updated: 19/Nov/10 2:56 PM
Affects Version: 3.0, 3.0.1, 3.5, 3.5.1, 3.5.3
Fixed Version: 3.5.4
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, ColdFusion 9, JBoss, JRun 4, Railo, Tomcat
Platform:
Related Issues: