Technically speaking the docset is not 'too big', it is simply causes 
too many native threads to be created for most 'default' Linux 
distributions.

Run the sample program and you should with a Linux 2.4 system get around
220ish threads.  The options without the change are as follows.

        o Use build.compiler=classic (which kicks the JVM into green
                threads which doesn't have a 'real' thread limit.
        o Set ulimit -u to greater around 1024
        o Modify /etc/security/limits.conf and nprocs to something
                around 1024

So the 'fix' is a workaround.  (Probably is the best solution for the 
moment, but it isn't a bug in the code, more so a configuration problem 
in the standard configuration of Linux distributions.

Just thought people might be interested (I spent about 2 hours 
attempting to get my first CVS build running when I came across this 
problem :).

Regards,

Matthew 'The new developer on the block' Tippett

Francisco Reverbel wrote:
> Found the cause: a recent change on server/build.xml made xdoclet 
> to be called on a fileset too big (name="**/*.java"). 
> 
> I will revert the change. But it is strange that nobody else saw 
> this... I have tried two Linux machines (a laptop with 128M and a 
> box with 384M) with the same result: xdoclet barfed on the big 
> fileset. Maybe there is something in my Linux environment that made    
> me run out of memory before anybody else.
 >
 >
>>leset>
>>Running xdoclet.XDocletMain loaded by
>>sun.misc.Launcher$AppClassLoader. Forked:\
>>true
>>  [xdoclet] Running <mbeanInterface/>
>>  [xdoclet] java.lang.OutOfMemoryError: unable to create new native thread



-- 
Matthew Tippett - [EMAIL PROTECTED]
Toronto, Canada - (416) 435-4118

public class TestThread extends Thread {

    public static void main(String argv[]) {

        int i=0;
        while(true) {
            TestThread thread = new TestThread();
            try {
                thread.start();
            } catch (Throwable e) {
                System.out.println("Maximum number of threads is "+Thread.activeCount());
                System.exit(-1);
            }
        }
    }

    public void run() {
        while (true) {
            try {
                sleep(10000);
            } catch (Exception e) {
            }
        }
    }
}

Reply via email to