ReservedSpace::reserve_and_align() assumes that memory reserved by os::reserve_memory() can be released in separate pieces at separate times. This assumption holds on posix-like systems where reserved_memory() calls mmap(), but does not hold on windows.
The problem is currently latent because reserve_and_align() is not called on windows, but the fix for JDK-6725414 will change that.
If methods in ReservedSpace must do alignment, save the original reserved address and size and use them when releasing memory.
Regression test notes - this problem was exposed by the changes for JDK-6725714, which cause the JVM to abort at startup on windows without this fix Thus many existing tests will detect a regression once JDK-6725714 is fixed.
This issue does not affect hs25 (reserve_and_align() was removed).