ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject RE: Should ScriptRunner call terminate() on the BSFManager?
Date Fri, 28 Mar 2008 03:23:45 GMT
Do I need to do anything to follow up on this? How to ensure this fix
gets into a future release?



>-----Original Message-----
>From: ext Peter Reilly [] 
>Sent: Tuesday, March 25, 2008 3:52 PM
>To: Ant Developers List
>Subject: Re: Should ScriptRunner call terminate() on the BSFManager?
>On Tue, Mar 25, 2008 at 8:59 PM, Paul King <> wrote:
>> wrote:
>>  > Hi,
>>  >
>>  > We've recently integrated Jepp 
>( 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 
>> 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.
>>  Paul.
>>  P.S. For those that aren't aware, WebTest is an Ant extension for  
>> testing web applications.
>>  To unsubscribe, e-mail:  For 
>> additional commands, e-mail:
>To unsubscribe, e-mail: For 
>additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message