fix: ensure converter isolation across ExcelWriter and ExcelReader by YangSiJun528 · Pull Request #740 · apache/fesod

Pull request overview

This pull request fixes a converter isolation bug where custom converters registered in one ExcelWriter or ExcelReader instance would leak to other instances due to shared mutable static maps.

Key Changes:

  • Wrapped default converter maps with Collections.unmodifiableMap() in DefaultConverterLoader to prevent direct modification
  • Modified holder initialization to create defensive mutable copies of converter maps for each instance
  • Added test case to verify converter isolation between ExcelWriter instances

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
fesod/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java Returns unmodifiable maps from loadDefaultWriteConverter() and loadAllConverter() methods to protect static converter maps
fesod/src/main/java/org/apache/fesod/sheet/write/metadata/holder/AbstractWriteHolder.java Creates mutable HashMap copy from unmodifiable default converter map during holder initialization
fesod/src/main/java/org/apache/fesod/sheet/read/metadata/holder/AbstractReadHolder.java Creates mutable HashMap copy from unmodifiable default converter map during holder initialization
fesod/src/test/java/org/apache/fesod/sheet/converter/ConverterIsolationTest.java Adds new test to validate custom converters do not leak between ExcelWriter instances

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.