Details
Description
A user has reported the following issue in 2.1-Beta:
To handle the server errors we have made some changes in our app.
1. Added following context parameter in the web.xml file where we have disabled the default error popups by Icefaces.
<context-param>
<param-name>org.icefaces.disableDefaultErrorPopups</param-name>
<param-value>true</param-value>
</context-param>
2. Added server error call back listener in the main template xhtml of our app where we display a global error on UI.
var iceErrorCallback = function iceHandleError(statusCode, responseTxt, responseDOM)
{
var errorMessage = '#{dict['ERROR.COMMON.GENERAL_ERROR']}'.split(':');
var ele = document.getElementsByTagName('span');
var i;
for(i=0;i<ele.length;i++){
var str = ele[i].id ;
if(str.indexOf('exceptionErrorId')!=-1){
ele[i].innerHTML = errorMessage[1];
}
}
};
ice.onServerError(iceErrorCallback);
As per the Icefaces documentation for the earlier releases, we need to set only above two settings to customize the exception handling. But after migrating to Icefaces 2.1.0- BETA release our customize exception handling functionality is broken. I debugged in to Icefaces bridge.js, compat.js and tmp.js and found that there are 3 call back listeners registered for server error. First from our app, 2nd from icefaces default in bridge.js and 3rd found in compat.js. The call back listener from bridge.js has check for error popup, we have set to true so it does not display any popup. The 3rd call back listener in compact.js has no check for error popup settings and it directly displays the Icefaces "Server Internal Error" popup on UI.
I think, this is a bug in Icefaces beta. In the earlier version, this functionality used to work perfectly.
To handle the server errors we have made some changes in our app.
1. Added following context parameter in the web.xml file where we have disabled the default error popups by Icefaces.
<context-param>
<param-name>org.icefaces.disableDefaultErrorPopups</param-name>
<param-value>true</param-value>
</context-param>
2. Added server error call back listener in the main template xhtml of our app where we display a global error on UI.
var iceErrorCallback = function iceHandleError(statusCode, responseTxt, responseDOM)
{
var errorMessage = '#{dict['ERROR.COMMON.GENERAL_ERROR']}'.split(':');
var ele = document.getElementsByTagName('span');
var i;
for(i=0;i<ele.length;i++){
var str = ele[i].id ;
if(str.indexOf('exceptionErrorId')!=-1){
ele[i].innerHTML = errorMessage[1];
}
}
};
ice.onServerError(iceErrorCallback);
As per the Icefaces documentation for the earlier releases, we need to set only above two settings to customize the exception handling. But after migrating to Icefaces 2.1.0- BETA release our customize exception handling functionality is broken. I debugged in to Icefaces bridge.js, compat.js and tmp.js and found that there are 3 call back listeners registered for server error. First from our app, 2nd from icefaces default in bridge.js and 3rd found in compat.js. The call back listener from bridge.js has check for error popup, we have set to true so it does not display any popup. The 3rd call back listener in compact.js has no check for error popup settings and it directly displays the Icefaces "Server Internal Error" popup on UI.
I think, this is a bug in Icefaces beta. In the earlier version, this functionality used to work perfectly.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion