ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Reilly" <peter.kitt.rei...@gmail.com>
Subject Re: Should ScriptRunner call terminate() on the BSFManager?
Date Tue, 25 Mar 2008 22:52:17 GMT
On Tue, Mar 25, 2008 at 8:59 PM, Paul King <paulk@asert.com.au> wrote:
>
> Paul.Mackay@nokia.com wrote:
>  > Hi,
>  >
>  > We've recently integrated Jepp (http://jepp.sourceforge.net/) into our
>  > use of Ant via the BSF engine. This is very useful because we use Python
>  > for scripting quite a lot and it allows Python code to be used in full
>  > while also allowing access to Java objects.
>  >
>  > This has resulted in a Java OOM error, which I suspect is due to this
>  > integration change. There is a comment in the Jepp usage instructions
>  > that close() must be called on the Jep objects. This is done inside the
>  > terminate() method of the BSFJepEngine, which is called by the
>  > BSFManager on all engines. However I cannot see anywhere where
>  > BSFManager.terminate() is called inside ScriptRunner or elsewhere inside
>  > Ant. Should terminate() be called by ScriptRunner(), perhaps in the
>  > finally section in the executeScript method?

Just had a quick look,
  we should call the terminate method - it is part of the life cycle that
  we missed.

Looking at some of the languages:
  beanshell does not use the  terminate method
  jruby does
  rhino does not
  groovy does not
  jython does not
  netrexx does not
  jacl does not

so it is not surprising that we missed this.

The odd thing is that javax.scripting does not seem to have
a corresponding method and the jruby javax.script engine
calls the terminate for each invoke method.


>
>  Others will be more familiar with the ScriptRunnerXXX classes than me
>  but in WebTest, its Script task has a keep flag. This might be a useful
>  concept to have here. Basically the flag allows you to distinguish between
>  scenarios where you want the binding retained across tasks (and hence
>  in the scenario above I suspect you don't want terminate() called) and
>  the case where you want a fresh manager/runner for each run. Again, I
>  haven't done a complete analysis of what gets called where in Ant at the
>  moment. Just noting an important use case for WebTest which I know is
>  in use in the field in many places.

It should be possible to modify the scripting code in such a way that
will not affect
people that use the code.


Peter
>
>  Paul.
>  P.S. For those that aren't aware, WebTest is an Ant extension for
>  testing web applications.
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>  For additional commands, e-mail: dev-help@ant.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message