They are not part of standard GC, therefore permanent. They are owned by their classloader, only if the classloader is destroyed then the objects are dropped.
--heinz On 8/31/06, Jason Dillon <[EMAIL PROTECTED]> wrote:
Um... then what does Perm stand for? --jason On Aug 30, 2006, at 11:24 PM, Heinz Drews wrote: > MaxPermSize specifies the amount of space used for class and method > objects. > Creating classes dynamically e.g. proxies, using cglib or other > dynamic byte code enhancers require more space than the default. > The Sun document explicitly names JSP implementations as culprits for > running out of space. > > Seems that we have to monitor the value for the runtime also. > > The parameter is used by the Sun JVM on all platforms. But they might > be different default values. I could not find the default value > documented. > > --heinz > > > On 8/31/06, Jason Dillon <[EMAIL PROTECTED]> wrote: >> I still dunno what -XXMaxPermSize does... will this wok on all >> JVM's? Or is this just for windows. >> >> I notice that someone updated the wiki to show this... I think we may >> need to have an example for Windows and an example for others... as >> I've never needed to set this... and it appears that the Mac OS X JVM >> does not recognize it either. >> >> Anyone know if this is Windows specific? >> >> --jason >> >> >> On Aug 30, 2006, at 10:49 PM, Heinz Drews wrote: >> >> > If it would be my OS I would have enough money to produce a better >> > one :-) >> > >> > In my case was jspc 1.4.5-SNAPSHOT and increasing MaxPermSize was >> > the remedy. >> > >> > --Heinz >> > >> > On 8/31/06, Jason Dillon <[EMAIL PROTECTED]> wrote: >> >> I'm not offended... well, not by your email at least... your os... >> >> well that is another story :-P >> >> >> >> Hopefully we will have the magic recipe for building on windows >> soon. >> >> >> >> --jason >> >> >> >> >> >> On Aug 30, 2006, at 10:01 PM, Heinz Drews wrote: >> >> >> >> > Please don't see my comments as offense. >> >> > They are born from frustration. It seemed that build has been >> >> > promoted from being the way to being the destination. >> >> > >> >> > For me it seems that setting MaxPermSize is helping a lot. >> >> > The situation that the total process stopped because of a >> >> failing test >> >> > has not happened again. >> >> > >> >> > Just finished a successful build using bootstrap under WinXP. >> >> > >> >> > --Heinz >> >> > >> >> > On 8/31/06, Jason Dillon <[EMAIL PROTECTED]> wrote: >> >> >> To clarify... the move of the downloaded sources to target/ >> >> external >> >> >> was intended, as I did want to make sure that mvn clean removed >> >> >> them. These sources are not intended to be modified by hand. >> >> >> Anything that you end up having problems with need to make it >> >> back to >> >> >> those repositories as changes, so that bootstrap by itself >> >> >> functions. This is not a problem with bootstrap, but a problem >> >> with >> >> >> those dependent projects in addition to your local >> environment/os. >> >> >> While I would very much like to get these build problems >> fixed for >> >> >> you, changing bootstrap is not the right answer IMO. >> >> >> >> >> >> --jason >> >> >> >> >> >> >> >> >> On Aug 30, 2006, at 7:38 AM, Joe Bohn wrote: >> >> >> >> >> >> > Jason, >> >> >> > >> >> >> > I'm not sure if this was intended or not ... but having these >> >> >> > thirdparty items under target results in the source being >> purged >> >> >> > when doing an mvn clean. This is unfortunate for those of >> >> us that >> >> >> > are hitting the failures on the openejb tests. My memory may >> >> not >> >> >> > be correct but I thought that prior to this change I could do >> >> the >> >> >> > following: >> >> >> > >> >> >> > - "bootstrap" (with the change to use the jspc 1.4.5- >> >> SNAPSHOT to >> >> >> > avoid the jspc problem). >> >> >> > - watch it fail to build openejb due to the test failures. >> >> >> > - run "mvn clean install -Dmaven.test.skip=true" >> >> >> > >> >> >> > However, now that openejb is under target the clean >> deletes the >> >> >> > source and before it attempts to build and the result is >> that I >> >> >> > still don't get the openejb jar created in my local repo. >> >> Now I >> >> >> > think I have to do the following: >> >> >> > >> >> >> > - "bootstrap" (with the change to use the jspc 1.4.5- >> >> SNAPSHOT to >> >> >> > avoid the jspc problem). >> >> >> > - watch it fail to build openejb due to the test failures. >> >> >> > - cd to target\external\openejb2 >> >> >> > - run "mvn -Dmaven.test.skip=true" >> >> >> > - run "mvn clean install" >> >> >> > >> >> >> > Am I doing something wrong? >> >> >> > >> >> >> > Thanks, >> >> >> > Joe >> >> >> > >> >> >> > >> >> >> > [EMAIL PROTECTED] wrote: >> >> >> >> Author: jdillon >> >> >> >> Date: Sat Aug 26 20:25:18 2006 >> >> >> >> New Revision: 437291 >> >> >> >> URL: http://svn.apache.org/viewvc?rev=437291&view=rev >> >> >> >> Log: >> >> >> >> Changed bootstrap to put external stuff into target/external >> >> >> >> instead of thirdparty >> >> >> >> Reduced ant output using -emacs and logger >> >> >> >> Modified: >> >> >> >> geronimo/server/trunk/bootstrap >> >> >> >> geronimo/server/trunk/bootstrap.bat >> >> >> >> geronimo/server/trunk/bootstrap.xml >> >> >> >> Modified: geronimo/server/trunk/bootstrap >> >> >> >> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ >> >> bootstrap? >> >> >> >> rev=437291&r1=437290&r2=437291&view=diff >> >> >> >> >> >> >> >> >> >> ===================================================================== >> >> >> >> ========= >> >> >> >> --- geronimo/server/trunk/bootstrap (original) >> >> >> >> +++ geronimo/server/trunk/bootstrap Sat Aug 26 20:25:18 2006 >> >> >> >> @@ -19,5 +19,5 @@ >> >> >> >> PWD=`cygpath --windows $PWD` >> >> >> >> fi >> >> >> >> -ant $BUILD_OPTIONS -f bootstrap.xml "$@" >> >> >> >> +ant $BUILD_OPTIONS -emacs -logger >> >> >> >> org.apache.tools.ant.NoBannerLogger -f bootstrap.xml "$@" >> >> >> >> Modified: geronimo/server/trunk/bootstrap.bat >> >> >> >> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ >> >> >> >> bootstrap.bat?rev=437291&r1=437290&r2=437291&view=diff >> >> >> >> >> >> >> >> >> >> ===================================================================== >> >> >> >> ========= >> >> >> >> --- geronimo/server/trunk/bootstrap.bat (original) >> >> >> >> +++ geronimo/server/trunk/bootstrap.bat Sat Aug 26 20:25:18 >> >> 2006 >> >> >> >> @@ -10,7 +10,7 @@ >> >> >> >> set PROGNAME=%~nx0% >> >> >> >> set ARGS=%* >> >> >> >> -ant %BUILD_OPTIONS% -f bootstrap.xml %ARGS% >> >> >> >> +ant %BUILD_OPTIONS% -emacs -logger >> >> >> >> org.apache.tools.ant.NoBannerLogger -f bootstrap.xml %ARGS% >> >> >> >> :END >> >> >> >> Modified: geronimo/server/trunk/bootstrap.xml >> >> >> >> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ >> >> >> >> bootstrap.xml?rev=437291&r1=437290&r2=437291&view=diff >> >> >> >> >> >> >> >> >> >> ===================================================================== >> >> >> >> ========= >> >> >> >> --- geronimo/server/trunk/bootstrap.xml (original) >> >> >> >> +++ geronimo/server/trunk/bootstrap.xml Sat Aug 26 20:25:18 >> >> 2006 >> >> >> >> @@ -14,19 +14,19 @@ >> >> >> >> </sequential> >> >> >> >> </macrodef> >> >> >> >> - <macrodef name="build-thirdparty"> >> >> >> >> + <macrodef name="build-external"> >> >> >> >> <attribute name="url"/> >> >> >> >> <attribute name="name"/> >> >> >> >> <sequential> >> >> >> >> - <mkdir dir="${basedir}/thirdparty"/> >> >> >> >> + <mkdir dir="${basedir}/target/external"/> >> >> >> >> - <exec executable="svn" dir="$ >> >> {basedir}/ >> >> >> >> thirdparty"> >> >> >> >> + <exec executable="svn" dir="${basedir}/target/ >> >> >> external"> >> >> >> >> <arg value="co"/> >> >> >> >> <arg value="@{url}"/> >> >> >> >> <arg value="@{name}"/> >> >> >> >> </exec> >> >> >> >> - <mvn goal="install" dir="$ >> {basedir}/ >> >> >> >> thirdparty/@{name}"/> >> >> >> >> + <mvn goal="install" dir="${basedir}/target/ >> >> external/@ >> >> >> >> {name}"/> >> >> >> >> </sequential> >> >> >> >> </macrodef> >> >> >> >> @@ -42,6 +42,7 @@ >> >> >> >> <target name="init" depends="init:discover, >> >> >> >> init:windows, init:defaults"> >> >> >> >> <record name="${basedir}/bootstrap.log"/> >> >> >> >> + <echo>Starting bootstrap build...</echo> >> >> >> >> </target> >> >> >> >> @@ -88,14 +89,12 @@ >> >> >> >> <!-- ======== --> >> >> >> >> <target name="clean" depends="clean:init, >> >> clean:minimal, >> >> >> >> clean:full"> >> >> >> >> - <delete dir="${basedir}/thirdparty"/> >> >> >> >> + <delete dir="${basedir}/target"/> >> >> >> >> <mvn goal="clean"/> >> >> >> >> </target> >> >> >> >> <target name="clean:init" depends="init"> >> >> >> >> - <echo>Cleaning...</echo> >> >> >> >> - <mkdir dir="${user.home}/.m2/repository"/> >> >> >> >> </target> >> >> >> >> @@ -120,18 +119,18 @@ >> >> >> >> </target> >> >> >> >> - <!-- ========== --> >> >> >> >> - <!-- Thirdparty --> >> >> >> >> - <!-- ========== --> >> >> >> >> + <!-- ========= --> >> >> >> >> + <!-- Externals --> >> >> >> >> + <!-- ========= --> >> >> >> >> <target name="specs" depends="init"> >> >> >> >> <echo>Building Specs...</echo> >> >> >> >> - <build-thirdparty url="http://svn.apache.org/repos/ >> >> asf/ >> >> >> >> geronimo/specs/trunk" name="specs"/> >> >> >> >> + <build-external url="http://svn.apache.org/repos/ >> asf/ >> >> >> >> geronimo/specs/trunk" name="specs"/> >> >> >> >> </target> >> >> >> >> <target name="openejb2" depends="init"> >> >> >> >> <echo>Building OpenEJB2...</echo> >> >> >> >> - <build-thirdparty url="http://svn.codehaus.org/ >> >> openejb/ >> >> >> >> trunk/openejb2" name="openejb2"/> >> >> >> >> + <build-external url="http://svn.codehaus.org/ >> openejb/ >> >> >> >> trunk/openejb2" name="openejb2"/> >> >> >> >> </target> >> >> >> >> </project> >> >> >> >> >> >> >> >> >> >> >> >>