Support Article
java.io.FileNotFoundException: /icFacesWindowClosed/
SA-1235
Summary
FileNotFoundException related to /icFacesWindowClosed/ occurs when you close the MDI window.
Error Messages
[9/8/14 20:02:33:566 CDT] 00000045 SystemErr R {{RENDER_RESPONSE(6)beforePhase }} java.io.FileNotFoundException: SRVE0190E: File not found: /icFacesWindowClosed/
Steps to Reproduce
Close any screen by clicking on the delete button (x).
Root Cause
The root cause of this problem is a defect in custom application code. Apply the test patch changes of FS6.5 (shown below) in FS6.8 with Browser Agnostics.
// test patch - start
// returning CLEANUP_CANCEL_NAV causes another unnecessary viewcache entry in
// the session after closing window, therefore sending windowclosed navigation id
// return CLEANUP_CANCEL_NAV;
String strReturn = "ic$WindowClosed";
return strReturn;
// test patch - end
Resolution
Follow the below order while closing an MDI window in FS6.8 with Browser Agnostics.
cafewindowbasupport.js
function doBeforeCloseWindow(processingStatus) {
var mdiWindow = top.advisorDesktop.windowManager.getWindow(window);
var url = "/Advisor/faces/icFacesWindowClosed?"
var params = "com.chordiant.JSF.TOKENS=" + mdiWindow.getTokens() + "&com.chordiant.JSF.FLOWS=" + mdiWindow.getFlows() + "&processing.status=" +processingStatus;
var xmlHttpServ = document.getElementById('xmlHttpService');
new cafescript.XMLHTTPService(xmlHttpServ);
if( xmlHttpService.closeWindow == 'undefined' || xmlHttpService.closeWindow == null ) {
xmlHttpServ.createService("closeWindow", url, false, "POST", null, null, "application/x-www-form-urlencoded");
}
try {
xmlHttpService.closeWindow.callService(null, params);
}
catch(error)
{
}
return true;
}
RenderResponsePhaseListener
if( viewId.indexOf( "icFacesWindowClosed" ) >= 0 ) {
if(LogHelper.isDebugLogOn())
LogHelper.debug(PACKAGE_NAME, CLASS_NAME, METHOD_NAME, "defaultIcBackingBean.cleanupCacheCancelProcesses");
MethodBinding methodBinding = facesCtx.getApplication().createMethodBinding("#{defaultIcBackingBean.cleanupCacheCancelProcesses}", null);
String result = (String)methodBinding.invoke( facesCtx, null );
facesCtx.getApplication().getNavigationHandler().handleNavigation(facesCtx, "", result);
return;
}
IcFacesBackingBeanImpl
public static final String CLEANUP_CANCEL_NAV = "ic$InteractionCancel";
/**
* The main phase listener will call this function to clean up any cache/memory and cancel any workflows associated with the
* MDI windows.
*/
public String cleanupCacheCancelProcesses() {
final String METHOD_NAME = "cleanupCacheCancelProcesses";
LogHelper.methodEntry(PACKAGE_NAME, CLASS_NAME, METHOD_NAME);
FacesContext facesCtx = FacesContext.getCurrentInstance();
cancelProcesses(facesCtx);
cleanupViewCache(facesCtx);
LogHelper.methodExit(PACKAGE_NAME, CLASS_NAME, METHOD_NAME);
return CLEANUP_CANCEL_NAV;
}
Advisor\WebContent\baAdvisorWeb\bundles\ic\faces-config-nav.xml.
<navigation-case>
<from-outcome>ic$InteractionCancel</from-outcome>
<to-view-id>/iAdvisorWeb/bundles/ic/jsf/completedCancel.jspx</to-view-id>
</navigation-case>
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.