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()inDefaultConverterLoaderto 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
ExcelWriterinstances
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.