Return-Path: Delivered-To: apmail-xml-cocoon-cvs-archive@xml.apache.org Received: (qmail 88521 invoked by uid 500); 28 Feb 2003 03:23:36 -0000 Mailing-List: contact cocoon-cvs-help@xml.apache.org; run by ezmlm Precedence: bulk Reply-To: cocoon-dev@xml.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cocoon-cvs@xml.apache.org Received: (qmail 88510 invoked by uid 500); 28 Feb 2003 03:23:36 -0000 Delivered-To: apmail-xml-cocoon2-cvs@apache.org Received: (qmail 88494 invoked from network); 28 Feb 2003 03:23:35 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 28 Feb 2003 03:23:35 -0000 Received: (qmail 88139 invoked by uid 1023); 28 Feb 2003 03:23:35 -0000 Date: 28 Feb 2003 03:23:35 -0000 Message-ID: <20030228032335.88138.qmail@icarus.apache.org> From: pier@apache.org To: xml-cocoon2-cvs@apache.org Subject: cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript JavaScriptInterpreter.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N pier 2003/02/27 19:23:34 Modified: src/java/org/apache/cocoon/components/flow/javascript JavaScriptInterpreter.java Log: Unwrap JavaScriptException to display a stacktrace when some Java native code is called from a continuation script. Revision Changes Path 1.20 +15 -4 xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java Index: JavaScriptInterpreter.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- JavaScriptInterpreter.java 26 Feb 2003 13:28:19 -0000 1.19 +++ JavaScriptInterpreter.java 28 Feb 2003 03:23:34 -0000 1.20 @@ -607,12 +607,23 @@ try { ((Function)handleContFunction).call(context, kScope, kScope, args); - } - catch (final Exception ex) { + } catch (JavaScriptException ex) { + Object value = ex.getValue(); + while (value instanceof Wrapper) { + value = ((Wrapper)value).unwrap(); + } + if (value instanceof Exception) { + Exception e = (Exception)value; + e.printStackTrace(); + throw e; + } else if (value instanceof Error) { + throw (Error)value; + } + throw ex; + } catch (Exception ex) { ex.printStackTrace(); throw ex; - } - finally { + } finally { Context.exit(); } }