Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.0
-
None
Description
The SoftRefFilesCache doesn't ever clear its cache. I found this out when I notice my JVM was sucking up hundreds of megs as it load, processed, and unloaded, thousands of files.
I have attached an example program that demonstrates the problem with SoftRefFilesCache.java#startThread(). The thread is never actually launched. I have only tried it on Java 1.7. Basically, I am trying to demonstrate that calling AtomicReference#compareAndSet never returns true when "expected" is a null value. So what happens is that the call returns false, the loop is re-entered, newThread gets blown away, the thread is found, and the loop exits, so the thread is never launched. I'm using VFS in a singleton fashion. Well, I was using it before this issue.