orlikowski    2004/04/26 10:57:29

  Modified:    src/org/apache/bsf/engines/jython JythonEngine.java
  Log:
  
  
  Revision  Changes    Path
  1.6       +29 -20    jakarta-bsf/src/org/apache/bsf/engines/jython/JythonEngine.java
  
  Index: JythonEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-bsf/src/org/apache/bsf/engines/jython/JythonEngine.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JythonEngine.java 26 Apr 2004 17:42:33 -0000      1.5
  +++ JythonEngine.java 26 Apr 2004 17:57:29 -0000      1.6
  @@ -81,26 +81,35 @@
      * call the named method of the given object.
      */
     public Object call (Object object, String method, Object[] args) 
  -                                                                                    
                         throws BSFException {
  -     
  -     PyObject[] pyargs = Py.EmptyObjects;
  -     if (args != null) {
  -       pyargs = new PyObject[args.length];
  -       for (int i = 0; i < pyargs.length; i++)
  -             pyargs[i] = Py.java2py(args[i]);
  -     }
  -
  -     if (object != null) {
  -       PyObject o = Py.java2py(object);
  -       return unwrap(o.invoke(method, pyargs));
  -     }
  -     PyObject m = interp.get(method);
  -     if (m == null)
  -             m = interp.eval(method);
  -     if (m != null) {
  -     return unwrap(m.__call__(pyargs));
  -     }
  -     return null;
  +      throws BSFException {
  +
  +      try {
  +          PyObject[] pyargs = Py.EmptyObjects;
  +
  +          if (args != null) {
  +              pyargs = new PyObject[args.length];
  +              for (int i = 0; i < pyargs.length; i++)
  +                  pyargs[i] = Py.java2py(args[i]);
  +          }
  +
  +          if (object != null) {
  +              PyObject o = Py.java2py(object);
  +              return unwrap(o.invoke(method, pyargs));
  +          }
  +
  +          PyObject m = interp.get(method);
  +
  +          if (m == null)
  +              m = interp.eval(method);
  +          if (m != null) {
  +              return unwrap(m.__call__(pyargs));
  +          }
  +
  +          return null;
  +      } catch (PyException e) {
  +          throw new BSFException (BSFException.REASON_EXECUTION_ERROR,
  +                                  "exception from Jython:\n" + e, e);
  +      }
     }
   
     /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to