#270 closed defect (fixed)
Fusion reports unreadable error message
Reported by: | christinebao | Owned by: | madair |
---|---|---|---|
Priority: | P2 | Milestone: | Future |
Component: | Core | Version: | 1.1.1 |
Severity: | Major | Keywords: | |
Cc: | Browser: | All | |
External ID: | Operating System: | All | |
state: | Committed |
Description
MapGuide customers report a severe defect that Flexible Web Layout reports unreadable error message.
For example, if the server is down while user do operation, (s)he will get a dialog with long error messages: "FATAL: xml2json: invalid XML document: MgConnectionFailedException : http://127.0.0.1/mapguide2010/mapagent/mapagent.fcgi?version=1.0.0&locale=en&clientagent=Fusion%20Viewer&operation=QUERYMAPFEATURES&session=40d3e074-3ee5-102c-8000-005056c00008_en_7F0000010AFC0AFB0AFA&mapname=Sheboygan4a3b609791c82&geometry=POLYGON((-87.730254250931%2043.73763292302%2C%20-87.730254250931%2043.737069942268%2C%20-87.729691270179%2043.737069942268%2C%20-87.729691270179%2043.73763292302%2C%20-87.730254250931%2043.73763292302))&maxFeatures=1&persist=0&selectionVariant=INTERSECTS&layerNames=&layerAttributeFilter=5 type=0".
This error message is helpless for end users. Customers report that they want a more user friendly message.
This message is from Fusion error handling code (fusion.js line 647)
if (r.status >= 400) { Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL, 'xml2json: invalid XML document: ' + r.statusText + " : " + r.request.url)); return; }
r.statusText is exception type from MapGuide, for example MgConnectionFailedException.
r.request.url is the long URL.
To improve this:
- MapGuide should set the exception message instead of exception type in r.statusText. For example, r.statusText should be "Cannot establish connection" instead of "MgConnectionFailedException". These messages are localized and readable to end users.
- Fusion should modify the code of error handling:
if (r.status >= 400) { Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL, + r.statusText)); return; }
By doing so end user can get a readable error message. For example "FATAL: Cannot establish connection"
Attachments (1)
Change History (4)
by , 15 years ago
Attachment: | FusionErrorMessage.patch added |
---|
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Component: | Widgets → Core |
---|---|
Resolution: | → fixed |
state: | New → Committed |
Status: | new → closed |
The patch is applied.
There are still discussion about how to solve this problem better. If better solution comes out, I'll refine the patch again.
comment:3 by , 15 years ago
New solution is:
- Fusion stay unchanged. When Fusion fires the error event, it will show complete error message including URL etc.
- MapGuide template handle the exception, parse the error message and show reasonable message to end users.
The patch is reverted. Fusion keep unchanged.
Christine, this looks great, please go ahead and apply the patch.