Currently lose of connection with EAP instance repeatedly leads to "Unknown error" followed by a console freeze. I believe this behavior is not right -- or at least it doesn't explain what happened. Steps to Reproduce: 1. Start EAP 2. navigate to console (e.g. http://localhost:9990/) 3. Kill the EAP Actual results: Bunch of "Unknown Errors" will pop-up followed by client side freeze Expected results: Some appropriate error message (e.g. "Connection Error", "Connection lost,...) followed (if possible) by some more reasonable action (permanently displayed error info?)
This actually is a bit complicated issue. Ive managed to talk briefly to hpehl about it. GWT has AsyncCallback interace. It is used in console to handle certain interactions. Currently its a bit inconsitient. Some classes implement interface as inner class, ie: ServerGroupPresenter{ public void onSaveCopy(final ServerGroupRecord orig, final ServerGroupRecord newGroup) { window.hide(); final ModelNode operation = new ModelNode(); operation.get(OP).set(READ_RESOURCE_OPERATION); operation.get(ADDRESS).add("server-group", orig.getName()); operation.get(RECURSIVE).set(true); dispatcher.execute(new DMRAction(operation, false), new AsyncCallback<DMRResponse>() { @Override public void onFailure(Throwable caught) { Console.error("Failed to read server-group: "+orig.getName(), caught.getMessage()); } @Override public void onSuccess(DMRResponse result) { ModelNode response = result.get(); if(response.isFailure()) { Console.error("Failed to read server-group: "+orig.getName(), response.getFailureDescription()); } else { ..... } } }); } } NOTE: public static void info(String message) { getMessageCenter().notify( new Message(message, Message.Severity.Info) ); } While other classes use: public abstract class SimpleCallback<T> implements AsyncCallback<T> { @Override public void onFailure(Throwable caught) { Log.error("Unknown error", caught); Diagnostics.logError("dmr-invocation", System.currentTimeMillis(), caught.getMessage()); Console.getMessageCenter().notify( new Message("Unknown error", caught.getMessage(), Message.Severity.Error) ); } } This is the main reason of "Uknown error" seen as concise message . This is a bit inconsistent. Notice that Console.xxxx method invokes new Message(String x,Severity y) while SimpleCallback does it a bit differently. There are two cases here, when message is displayed - 1. when concise message - shown as bar in console, is initialized to Exception.getMessage(). The getMessage() may contain various content - whole dump, stack trace, localized content (UIConstanget.*) and whatever is present there( I did not review each callback trace, so I may be off in some of them) 2. "Uknown Error" string is passed as concise message, while full message is initialized to #1 - the getMessage() from exception. Sollution: Create base exception class whith additional field to carry localized content - displayed as concise message, while Exception.message will carry everything else. This will fix the "Uknown Error" not only for 500, but all other failure cases.
should be fixed in 1.5.2 already
Verified 6.1.1.ER2
Added a draft Release Note to the Doc Text field above. Please review for technical accuracy.
Resetting needinfo as it was cancelled accidentally in last action. See comment 4.
Resetting NEEDINFO flag. Again. Please review the Release Note text above and validate for technical accuracy.
The release notes text doesn't make sense. I would change it to: Cause The Web Management Interface is a Google Web Toolkit (GWT) application and, as such, use GWT deferred binding to load application compoments on demand. In some cases the deffered loading did fail and such freeze the overall application. Consequence In some cases the web console did freeze. These symptoms gave no indication about the source of the problem. Fix Proper error handling for the deffered binding was introdcued. Result Even in case of a problem when loading application compoments on demand, the exception are handled gracefully and web console remains accessible.
Seems like Heiko provided review.
Have updated Release Note text based on Heiko's input and marked for inclusion in the 6.1.1 Release Notes document.