One of the developer reported "java.lang.OutOfMemoryError: unable to create new native thread" while working with eclipse on his application.
Below is the error log.
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
at java.lang.ref.Finalizer$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ref.Finalizer.forkSecondaryFinalizer(Unknown Source)
at java.lang.ref.Finalizer.runFinalization(Unknown Source)
at java.lang.Runtime.runFinalization0(Native Method)
at java.lang.Runtime.runFinalization(Unknown Source)
at java.lang.System.runFinalization(Unknown Source)
This is what i can think why he encountered with this issue.
User is running on 32 bit machine with
Since he is running on 32 bit machine, you need to allocate –Xmx and -XX:PermSize carefully. Since 32 bit machines can address maximum of 4GB address space.
Since we allocated -Xmx is 1024m and -XX:PermSize is 512m, there is very less space is remaining to create a new Java native threads by OS.
To make it work, reduce -XX:PermSize to 256m and –Xmx to 512m(unless 1024 is required).