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" <[email protected]>
> > 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]