]> source.dussan.org Git - poi.git/commitdiff
make HPSF limit more configuarble
authorPJ Fanning <fanningpj@apache.org>
Fri, 29 Apr 2022 21:47:45 +0000 (21:47 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 29 Apr 2022 21:47:45 +0000 (21:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1900402 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/hpsf/Array.java

index eeaf58683f6e423826866d71c4740354c18cfa90..e366e3cee28aa5ccfea21fafa15cfaad0acd6716 100644 (file)
@@ -22,8 +22,16 @@ import org.apache.poi.util.LittleEndianByteArrayInputStream;
 
 @Internal
 public class Array {
+    private static final int DEFAULT_MAX_NUMBER_OF_ARRAY_SCALARS = 100_000;
+    private static int MAX_NUMBER_OF_ARRAY_SCALARS = DEFAULT_MAX_NUMBER_OF_ARRAY_SCALARS;
 
-    private static final int MAX_NUMBER_OF_ARRAY_SCALARS = 100_000;
+    public static int getMaxNumberOfArrayScalars() {
+        return MAX_NUMBER_OF_ARRAY_SCALARS;
+    }
+
+    public static void setMaxNumberOfArrayScalars(final int maxNumberOfArrayScalars) {
+        MAX_NUMBER_OF_ARRAY_SCALARS = maxNumberOfArrayScalars;
+    }
 
     static class ArrayDimension {
         private long _size;
@@ -88,7 +96,7 @@ public class Array {
         }
         int numberOfScalars = (int) numberOfScalarsLong;
 
-        IOUtils.safelyAllocateCheck(numberOfScalars, MAX_NUMBER_OF_ARRAY_SCALARS);
+        IOUtils.safelyAllocateCheck(numberOfScalars, getMaxNumberOfArrayScalars());
 
         _values = new TypedPropertyValue[numberOfScalars];
         int paddedType = (_header._type == Variant.VT_VARIANT) ? 0 : _header._type;