Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

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

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us