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:[EMAIL PROTECTED] >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 <[EMAIL PROTECTED]> wrote: >> >> [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For >> additional commands, e-mail: [EMAIL PROTECTED] >> >> > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] For >additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]