THis is a Regression from Merlin..
Memory leak seems to happen to 1.4.1-rc-b19(windows)
Originally, OutOfMemory happens to a licensee's system in 1.2.2 and 1.3.1.
With further investigation, they concluded the similar issue might be happen
in 1.4.1b19. Please evaluate.
1. reproduce & behavior
1) Unfold the attached file
-> you will see the GetPropertyK.java, GetPropertyK.class and aaa dir.
under aaa, you can see TestBean.java and .class.
Those .class files are compiled 1.3.1_04.
2) Invoke "java -verbose:class GetPropertyK" in 1.3.1_04, 1.4.0_01
and 1.4.1-rc-b19.
3) in 1.3.1_04 and 1.4.1-rc-b19, logs will be output as follows.
....
[Loaded TestBean]
[Loaded TestBean]
[Loaded TestBean]
[Loaded TestBean]
.....
On the other hand, the output will be as follow in 1.4.0_02.
[Loaded TestBean]
[Unloading class TestBean]
[Loaded TestBean]
[Unloading class TestBean]
2. Investigation
Actually, OutofMemory happens in 1.3.1_04 with long time run on the customer's
site. This seems to be from that JVM does not unload the loaded TestBean.
On the other hand, it does not happens in 1.4.0_01 because it releases
TestBean class.
If the above is correct, because the JVM of 1.4.1-rc-b19 does not unload
the TestBean, OutofMemory will happens in 1.4.1-rc-b19.
3. Configration
MPU: Pentium IV 1.4 [GHz]
OS : Windows 2000(SP2, Japanese)
JRE/JDK: 1.4.1-rc-b19/1.3.1_04
4. Note
1) I recommend to run with -Xmx6M. If you run with default value(64M),
it will take much time to confirm this behavior.
With such small max heap size, job will terminate in 5 minutes
(at longest) with OutOfMemory in 1.4.1-rc-b19.
In 1.4.0_01, job did not terminate even with such small heap size.
2) OptimizeIT, the behavior of 1.4.1b19 is apparently different
from that of 1.4.0_01.(1.4.1b19 keep consuming the heap.)
Please see the attached screen shots.
2002-08-13
===========================================================================