Bug 803115

Summary: Invalid encoding in gadget source not handled properly
Product: [JBoss] JBoss Enterprise Portal Platform 5 Reporter: Miroslav Cupák <mcupak>
Component: PortalAssignee: Peter Palaga <ppalaga>
Status: MODIFIED --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 5.2.1.GACC: epp-bugs, theute, tkyjovsk
Target Milestone: ---   
Target Release: 5.2.x   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: When OpenSocial gadget XML definition had encoding other than the default encoding of the running VM in its XML declaration, an "Unknown error" was presented to the user. Consequence: Gadget was not saved. Fix: The declared encoding is detected, validated and used to store the XML document. Result: An error message is presented to the user only if the XML document contains an unsupported encoding. Otherwise the there is no error message and the document is stored properly.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Screenshot of the error message.
none
Invalid encoding error from the server log.
none
Invalid prolog content error from the server log. none

Description Miroslav Cupák 2012-03-14 01:51:51 UTC
Description of problem:
Invalid encoding in gadget source leads to SAXParseException and an "Unknown error" message. The exception should be caught and a proper error message should be displayed.

More specifically, there are two different error messages you can get depending on how you mess up the encoding. You can either run into "org.xml.sax.SAXParseException: Content is not allowed in prolog." (with e.g. "UTF-16" as the encoding) or "org.xml.sax.SAXParseException: Invalid encoding name" (with e.g. "UsadfTF-8" as the encoding).

Steps to Reproduce:
1. Sign in as "root".
2. Go to "Group" > "Administration" > "Application Registry" and switch to "Gadget".
3. Try to create a gadget with an invalid encoding as described above.

Comment 1 Miroslav Cupák 2012-03-14 01:55:06 UTC
Created attachment 569828 [details]
Screenshot of the error message.

Comment 2 Miroslav Cupák 2012-03-14 01:56:12 UTC
Created attachment 569829 [details]
Invalid encoding error from the server log.

Comment 3 Miroslav Cupák 2012-03-14 01:57:11 UTC
Created attachment 569832 [details]
Invalid prolog content error from the server log.

Comment 4 Peter Palaga 2012-07-13 14:54:17 UTC
Fix described inhttps://issues.jboss.org/browse/GTNPORTAL-2496

Comment 5 Peter Palaga 2012-07-13 14:54:17 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: When OpenSocial gadget XML definition had encoding other than the default encoding of the running VM in its XML declaration, an "Unknown error" was presented to the user.
Consequence: Gadget was not saved.
Fix: The declared encoding is detected, validated and used to store the XML document.
Result: An error message is presented to the user only if the XML document contains an unsupported encoding. Otherwise the there is no error message and the document is stored properly.

Comment 6 Miroslav Cupák 2012-08-02 13:58:35 UTC
I verified that nonexistent encoding is handled properly and a proper message is displayed.

However, there seems to be a problem with gadgets using "UTF-16". Such encoding passes validation now and the gadget is saved, but it cannot be displayed by the portal. If you drag it on dashboard, you simply don't see any gadget window on the page, but if you change the encoding and go back to dashboard, the gadget is visible. If the gadget is placed on a portal page (not dashboard), the following JS error is logged: "Uncaught TypeError: Cannot read property 'height' of undefined (merged.js:144)". Observed with a simple "Hello world" gadget.

Comment 7 Thomas Heute 2012-08-09 09:11:18 UTC
AFAIK it is not a regression ? If it's not please target 5.2.x

Comment 8 Peter Palaga 2012-08-09 10:11:24 UTC
@theute: No, this is not a regression. Setting target to 5.2.x.

@mcupak: Thank you for your consequent checks. I could track the problem down to JCR not including the charset in the response's Content-Type. I am going to ask JCR people if that can be fixed.