Skip to content

Fix stale buffer detection in Openable.getBuffer() for recreated jar files#15

Open
carstenartur with Copilot wants to merge 3 commits into
masterfrom
copilot/fix-stale-buffer-detection
Open

Fix stale buffer detection in Openable.getBuffer() for recreated jar files#15
carstenartur with Copilot wants to merge 3 commits into
masterfrom
copilot/fix-stale-buffer-detection

Conversation

Copilot AI commented Feb 11, 2026

Copy link
Copy Markdown

PR #14 placed stale buffer detection in ClassFile.openBuffer() and ModularClassFile.openBuffer(), but openBuffer() is only called when the cache returns null. When a jar is deleted and recreated with the same path, the BufferManager cache returns the old (closed) buffer — openBuffer() is never reached.

Changes

  • Openable.getBuffer() — Essential fix. Detect closed buffers from cache before they're returned:
    IBuffer buffer = getBufferManager().getBuffer(this);
    if (buffer != null && !(buffer instanceof NullBuffer) && buffer.isClosed()) {
        getBufferManager().removeBuffer(buffer);
        buffer = null;
    }
  • ClassFile.openBuffer() — Defense-in-depth. Same isClosed() check for the outermost enclosing type's cached buffer, covering inner class lookups.
  • ModularClassFile.openBuffer() — Left unmodified. PR Fix stale buffer reuse when jar files are recreated with same path #14 incorrectly added a cache lookup that didn't previously exist and isn't needed.
  • ClassFileTests — Added testStaleBufferAfterJarRecreation() covering the create→delete→recreate jar cycle.

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits February 11, 2026 20:36
…r() and ClassFile.openBuffer()

Co-authored-by: carstenartur <3164220+carstenartur@users.noreply.github.com>
Co-authored-by: carstenartur <3164220+carstenartur@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix stale buffer detection in Openable.getBuffer Fix stale buffer detection in Openable.getBuffer() for recreated jar files Feb 11, 2026
Copilot AI requested a review from carstenartur February 11, 2026 20:39
@carstenartur carstenartur marked this pull request as ready for review February 11, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants