Created attachment 36916 [details] stack trace for Visio error The Visio file is larger than the 1 MB limit, so I can't attach it, but I can share it if needed. Caused by: org.apache.poi.util.RecordFormatException: Tried to allocate an array of length 27907952, but 10000000 is the maximum for this record type. If the file is not corrupt, please open an issue on bugzilla to request increasing the maximum allowable size for this record type. As a temporary workaround, consider setting a higher override value with IOUtils.setByteArrayMaxOverride() See attached stack trace, which has calls to my code snipped out.
This is mostly caused/fixed by bug 63569 which prevents to set a custom limit currently. The default limits should be set so memory allocations are guarded and still almost all files can be processed. There always will be possibility to encounter files with bigger sizes. So we do not want to set the default to the largest file out there as it would defeat the purpose of this functionality, i.e. to avoid allocating unexpected high amounts of main memory.
Some changes have been made on trunk branch and anyone who wants to try them out could download the nightly build (eg https://builds.apache.org/view/P/view/POI/job/POI-DSL-1.8/837/artifact/build/dist/)
*** Bug 64027 has been marked as a duplicate of this bug. ***
I think we should not try to increase these limits more and more but rather ask users to use the override-functionality if the used file is exceptionally large. So closing this as WONTFIX, we can improve the error-message somewhat to indicate that large files require the user to set an override.