Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb In directory sc8-pr-cvs1:/tmp/cvs-serv18096 Modified Files: ERD2WPage.java ERD2WSwitchComponent.java ERDCustomEditComponent.java ERDirectToWeb.java Log Message: Better error reporting: instead being lost in a maze of KVC stuff, all alike, you can now get a reasonable error with a stack trace, the most important d2w keys *and* the option to continue. Meaning that if you screw up on one key you can´t figure out, you might as well solve the rest of the problems on the page. Index: ERD2WPage.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WPage.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** ERD2WPage.java 27 Feb 2003 19:32:19 -0000 1.21 --- ERD2WPage.java 8 Apr 2003 13:54:58 -0000 1.22 *************** *** 175,180 **** super.appendToResponse(r,c); } catch(Exception ex) { ! log.warn("Error in D2WPage: propertyKey=" + propertyKey() + ", componentName=" + d2wContext().valueForKey("componentName") + ", customComponent=" + d2wContext().valueForKey("customComponentName"), ex); ! throw new NSForwardException(ex, "Error generating page"); } finally { NDC.pop(); --- 175,179 ---- super.appendToResponse(r,c); } catch(Exception ex) { ! ERDirectToWeb.reportException(ex, d2wContext()); } finally { NDC.pop(); Index: ERD2WSwitchComponent.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WSwitchComponent.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ERD2WSwitchComponent.java 5 Mar 2003 22:41:14 -0000 1.5 --- ERD2WSwitchComponent.java 8 Apr 2003 13:54:58 -0000 1.6 *************** *** 53,58 **** public void appendToResponse(WOResponse r, WOContext c) { ! maybeResetCaches(); ! super.appendToResponse(r, c); } --- 53,62 ---- public void appendToResponse(WOResponse r, WOContext c) { ! try { ! maybeResetCaches(); ! super.appendToResponse(r,c); ! } catch(Exception ex) { ! ERDirectToWeb.reportException(ex, subContext()); ! } } Index: ERDCustomEditComponent.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERDCustomEditComponent.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ERDCustomEditComponent.java 21 Jan 2003 14:01:50 -0000 1.12 --- ERDCustomEditComponent.java 8 Apr 2003 13:54:58 -0000 1.13 *************** *** 117,125 **** public void appendToResponse(WOResponse r, WOContext c) { ! // in the case where we are non-synchronizing but not stateless, make sure we pull again ! if (!synchronizesVariablesWithBindings() && !isStateless()) { ! reset(); } - super.appendToResponse(r,c); } --- 117,129 ---- public void appendToResponse(WOResponse r, WOContext c) { ! try { ! // in the case where we are non-synchronizing but not stateless, make sure we pull again ! if (!synchronizesVariablesWithBindings() && !isStateless()) { ! reset(); ! } ! super.appendToResponse(r,c); ! } catch(Exception ex) { ! ERDirectToWeb.reportException(ex, d2wContext()); } } Index: ERDirectToWeb.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERDirectToWeb.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ERDirectToWeb.java 16 Jan 2003 15:43:54 -0000 1.17 --- ERDirectToWeb.java 8 Apr 2003 13:54:59 -0000 1.18 *************** *** 304,307 **** --- 304,322 ---- } + public static void reportException(Exception ex, D2WContext d2wContext) { + if(d2wContext != null) { + log.error("Exception <"+ex+">: "+ + "pageConfiguration <" + d2wContext.valueForKeyPath("pageConfiguration") + ">, "+ + "propertyKey <" + d2wContext.propertyKey() + ">, "+ + "entityName <" + d2wContext.valueForKeyPath("entity.name") + ">, "+ + "displayPropertyKeys <" +d2wContext.valueForKeyPath("displayPropertyKeys")+ ">, "+ + "componentName <" + d2wContext().valueForKey("componentName") + ">, "+ + "customComponent <" + d2wContext().valueForKey("customComponentName") + ">", ex); + } else { + log.error("Exception <"+ex+">: with NULL d2wContext", ex); + } + if(ERXProperties.booleanForKeyWithDefault("er.directtoweb.ERDirectToWeb.shouldRaiseExceptions", true)) + throw new NSForwardException(ex); + } public static String displayNameForPropertyKey(String key, String entityName, String language) { |