Hide Forgot
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.
Created attachment 569828 [details] Screenshot of the error message.
Created attachment 569829 [details] Invalid encoding error from the server log.
Created attachment 569832 [details] Invalid prolog content error from the server log.
Fix described inhttps://issues.jboss.org/browse/GTNPORTAL-2496
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.
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.
AFAIK it is not a regression ? If it's not please target 5.2.x
@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.