ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Paul.Mac...@nokia.com>
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?

thanks

paul
 

>-----Original Message-----
>From: ext Peter Reilly [mailto:peter.kitt.reilly@gmail.com] 
>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 <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
>
>

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


Mime
View raw message