Thanks, I found the "memory leak" in our build structure and fixed some of this already. I will also recompile ant and then I will restructe the rest of the build process as soon as we get some time for this. Thanks alot.
R, Markus Am Donnerstag, den 19.10.2006, 16:51 +0100 schrieb Peter Reilly: > On 10/19/06, Markus M. May <[EMAIL PROTECTED]> wrote: > > Hello, > > > > this is going to be nearly the same as restructuring the build process, > > since we have more then one component, using these targets. I am currently > > digging deeper into this, and hope, that I can restructure the build > > tonight. This is going to get a long night :-( > > If you can recompile Ant, (1.6.5) there is a memory leakage associated > with <antcall> and <taskdef> that can be fixed easily. > In IntrospectionHelper.java, the method > > public static synchronized IntrospectionHelper getHelper(Class c) { > IntrospectionHelper ih = (IntrospectionHelper) helpers.get(c); > if (ih == null) { > ih = new IntrospectionHelper(c); > helpers.put(c, ih); > } > return ih; > } > Change this to: > > public static synchronized IntrospectionHelper getHelper(Class c) { > IntrospectionHelper ih = (IntrospectionHelper) > helpers.get(c.getName()); > if (ih == null || c != ih.bean) { > ih = new IntrospectionHelper(c); > helpers.put(c.getName(), ih); > } > return ih; > } > > Recompile (./build.sh or build.bat in the source), copy > $ant_source/dist/lib/ant.jar > to $ANT_HOME/lib (*not* the other jar files as they need third party jars > to compile). > > This change is in the svn version of ant, but was done after > the release of ant 1.7.0beta3. > > peter > > > > > > > > -------- Original-Nachricht -------- > > Datum: Thu, 19 Oct 2006 16:04:06 +0100 > > Von: "Peter Reilly" <[EMAIL PROTECTED]> > > An: "Ant Users List" <user@ant.apache.org> > > Betreff: Re: antcall / depends > > > > > On 10/19/06, Markus M. May <[EMAIL PROTECTED]> wrote: > > > > Hello, > > > > I am currently facing a massive OutOfMemoryException problem. I know > > > that this is, because we are using ANTCALL quite heavily. > > > > We have e.g. the following structure: > > > > > > > > TargetA > > > > depends on init (via depend) > > > > calls TargetB and TargetC (via antcall) > > > > TargetB > > > > depends on init (via depend) > > > > TargetC > > > > depends on init (via depend) > > > > > > > > Therefor for each antcall we call the target init. Since there are > > > taskdefs in the init-target, there is quite some memory leak. Is there > > > some way, > > > to not call the depends, once they are called, another time? > > > > > > Make the target "init" have an unless attribute: > > > > > > <target name="init" unless="initialized"> > > > </target> > > > > > > <target name="A" depends="init"> > > > <antcall target="B"> > > > <param name="initialized" value="true"/> > > > </antcall> > > > <antcall target="C"> > > > <param name="initialized" value="true"/> > > > </antcall> > > > </target> > > > > > > > > > Or, if antcall is called with inheritAll="true" (the default) > > > > > > <target name="init" unless="initialized"> > > > ... > > > <property name="initialized" value="yes, I am"/> > > > </target> > > > > > > <target name="A" depends="init"> > > > <antcall target="B"/> > > > <antcall target="C"/> > > > </target> > > > > > > <target name="B" depends="init"> > > > </target> > > > <target name="C" depends="init"> > > > </target> > > > > > > Peter > > > > > > > > > > I know, that we should restructure our build, but currently we are > > > facing a timely issue, so this is not an option anyway :-( > > > > > > > > Any help is appreciated. > > > > > > > > R, > > > > > > > > Markus M. May > > > > > > > > --------------------------------------------------------------------- > > > > 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] > > > > > > --------------------------------------------------------------------- > 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]