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();
       }
     }
  
  
  

Reply via email to