A read from a corefile should be open->read->close. Doing this with RandomAccessFile would cause many dozens of java objects queued for GC on a lot of peek() operations. Right now, because of that, CorefileBytebuffer maintains the RandomAccessFile open for the life of the buffer, consuming one FD for a long time. A very light weight object that keeps the file closed, opens it on read, then closes it again is required, so that fd's and other systems resources can be cycled back into the pool
Appears that the comment above fixed the issue, and this bug was left open
Reopening to add actual commit changelog
2007-05-22 Phil Muldoon <pmuldoon@redhat.com> * CorefileByteBuffer.java (finalize): Remove. (isFileOpen): Remove. (peek): Rewrite to use StatelessFile. (isFileSane): Test for object creation. (openFile): Rewrite. Use StatlessFile. (CorefileByteBuffer): Switch order of file open and elf address offset table creation. * TestCorefileByteBuffer (testCoreFileByteBufferMapOverrun): Move overrun location.
Changing Assigned to pmuldoon
Closing (finally ;)