Name: boT120536 Date: 03/14/2001
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
Occasionnally, when updating a jar file while a java program uses it, said jave program throws
spurious ClassNotFound errors. This is somewhat surprising, as similar problems don't occur
when for instance updating a shared library (.so file) while programs use it.
The problem occurs both on Windows and on Linux
The reason why it doesn't happen for C libraries is because these are mmapped in PRIVATE
mode into the program's address space, and hence the program sees a snapshot of their state how
the library was when first started. It can thus continue its work undisturbed even through updates.
Would it be possible to implement a similar scheme for access to .jar? For platforms where mmap
is not supported, such as Windows, the jar could be read entirely in memory upon first use.
(Review ID: 118787)