Author: fanningpj
Date: Tue Feb 14 14:26:56 2023
New Revision: 1907651
URL: http://svn.apache.org/viewvc?rev=1907651&view=rev
Log:
fix up use of ExceptionUtil in main poi module
Added:
poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
(with props)
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java
poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java
poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/crypto/Biff8DecryptingStream.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/EncryptionInfo.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/nio/CleanerUtil.java
poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/DrawPictureShape.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/SheetNameFormatter.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/Switch.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XLookupFunction.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XMatchFunction.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Areas.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Days.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Forecast.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Indirect.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/NumberValueFunction.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/WeekNum.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java
poi/trunk/poi/src/main/java/org/apache/poi/util/Configurator.java
Modified: poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java Tue Feb 14
14:26:56 2023
@@ -45,6 +45,7 @@ import org.apache.poi.poifs.crypt.crypto
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.DocumentInputStream;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
@@ -245,6 +246,9 @@ public abstract class POIDocument implem
} catch (IOException e) {
throw e;
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new IOException("Error "+step+" property set with name " +
setName, e);
} finally {
IOUtils.closeQuietly(encPoifs);
Modified: poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java Tue Feb 14
14:26:56 2023
@@ -35,6 +35,7 @@ import org.apache.logging.log4j.LogManag
import org.apache.logging.log4j.Logger;
import org.apache.poi.hpsf.wellknown.PropertyIDMap;
import org.apache.poi.util.CodePageUtil;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianByteArrayInputStream;
@@ -403,6 +404,9 @@ public class Property {
try {
write(bos, codepage);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOG.atWarn().withThrowable(e).log("can't serialize string");
}
@@ -475,6 +479,9 @@ public class Property {
return
LocaleUtil.getLocaleFromLCID(((Number)value).intValue());
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOG.atWarn().log("Can't decode id {}", box(getID()));
}
return null;
Modified: poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java Tue Feb 14
14:26:56 2023
@@ -35,6 +35,7 @@ import org.apache.logging.log4j.LogManag
import org.apache.logging.log4j.Logger;
import org.apache.poi.hpsf.wellknown.PropertyIDMap;
import org.apache.poi.util.CodePageUtil;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianByteArrayInputStream;
@@ -547,6 +548,9 @@ public class Section {
} catch (HPSFRuntimeException ex) {
throw ex;
} catch (Exception ex) {
+ if (ExceptionUtil.isFatal(ex)) {
+ ExceptionUtil.rethrow(ex);
+ }
throw new HPSFRuntimeException(ex);
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/crypto/Biff8DecryptingStream.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/crypto/Biff8DecryptingStream.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/crypto/Biff8DecryptingStream.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/crypto/Biff8DecryptingStream.java
Tue Feb 14 14:26:56 2023
@@ -25,6 +25,7 @@ import org.apache.poi.hssf.usermodel.HSS
import org.apache.poi.poifs.crypt.ChunkedCipherInputStream;
import org.apache.poi.poifs.crypt.Decryptor;
import org.apache.poi.poifs.crypt.EncryptionInfo;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian;
@@ -61,6 +62,9 @@ public final class Biff8DecryptingStream
ccis.readFully(initialBuf);
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new RecordFormatException(e);
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
Tue Feb 14 14:26:56 2023
@@ -105,6 +105,7 @@ import org.apache.poi.ss.usermodel.Workb
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.util.Configurator;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.HexDump;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
@@ -1584,6 +1585,9 @@ public final class HSSFWorkbook extends
}
os.close();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException(e);
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/CryptoFunctions.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
Tue Feb 14 14:26:56 2023
@@ -34,6 +34,7 @@ import javax.crypto.spec.IvParameterSpec
import javax.crypto.spec.RC2ParameterSpec;
import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian;
@@ -346,6 +347,9 @@ public final class CryptoFunctions {
Class<Provider> clazz =
(Class<Provider>)cl.loadClass(bcProviderName);
Security.addProvider(clazz.getDeclaredConstructor().newInstance());
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException("Only the BouncyCastle
provider supports your encryption settings - please add it to the classpath.",
e);
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/EncryptionInfo.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/EncryptionInfo.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/EncryptionInfo.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/EncryptionInfo.java
Tue Feb 14 14:26:56 2023
@@ -35,6 +35,7 @@ import org.apache.poi.poifs.filesystem.D
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LittleEndianInput;
/**
@@ -141,6 +142,9 @@ public class EncryptionInfo implements G
try {
eib = getBuilder(encryptionMode);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new IOException(e);
}
@@ -187,6 +191,9 @@ public class EncryptionInfo implements G
try {
eib = getBuilder(encryptionMode);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException(e);
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java
Tue Feb 14 14:26:56 2023
@@ -24,6 +24,7 @@ import org.apache.poi.poifs.crypt.Chaini
import org.apache.poi.poifs.crypt.CipherAlgorithm;
import org.apache.poi.poifs.crypt.EncryptionHeader;
import org.apache.poi.poifs.crypt.HashAlgorithm;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.GenericRecordUtil;
public class AgileEncryptionHeader extends EncryptionHeader {
@@ -48,6 +49,9 @@ public class AgileEncryptionHeader exten
throw new NullPointerException("keyData not set");
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException("Unable to parse keyData");
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java
Tue Feb 14 14:26:56 2023
@@ -42,6 +42,7 @@ import org.apache.poi.poifs.filesystem.D
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianInputStream;
@@ -212,6 +213,8 @@ public class CryptoAPIDecryptor extends
throw (GeneralSecurityException)e;
} else if (e instanceof IOException) {
throw (IOException)e;
+ } else if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
} else {
throw new IOException("summary entries can't be read", e);
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
Tue Feb 14 14:26:56 2023
@@ -24,6 +24,7 @@ import javax.crypto.Cipher;
import org.apache.commons.io.input.BoundedInputStream;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.Internal;
/**
@@ -59,6 +60,9 @@ import org.apache.poi.util.Internal;
cipher.update(oneByte, 0, 1, oneByte, 0);
super.write(oneByte);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException(e);
}
}
@@ -69,6 +73,9 @@ import org.apache.poi.util.Internal;
cipher.update(b, off, len, b, off);
super.write(b, off, len);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new EncryptedDocumentException(e);
}
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/nio/CleanerUtil.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/nio/CleanerUtil.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/nio/CleanerUtil.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/nio/CleanerUtil.java Tue
Feb 14 14:26:56 2023
@@ -180,14 +180,17 @@ public final class CleanerUtil {
(PrivilegedAction<Throwable>) () -> {
try {
unmapper.invokeExact(buffer);
- return null;
} catch (Throwable t) {
if (ExceptionUtil.isFatal(t)) {
ExceptionUtil.rethrow(t);
}
}
+ return null;
});
if (error != null) {
+ if (ExceptionUtil.isFatal(error)) {
+ ExceptionUtil.rethrow(error);
+ }
throw new IOException("Unable to unmap the mapped buffer",
error);
}
};
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/DrawPictureShape.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/DrawPictureShape.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/DrawPictureShape.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/DrawPictureShape.java
Tue Feb 14 14:26:56 2023
@@ -35,6 +35,7 @@ import org.apache.poi.poifs.filesystem.F
import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.sl.usermodel.PictureShape;
import org.apache.poi.sl.usermodel.RectAlign;
+import org.apache.poi.util.ExceptionUtil;
public class DrawPictureShape extends DrawSimpleShape {
@@ -103,7 +104,10 @@ public class DrawPictureShape extends Dr
}
} catch (NoSuchElementException ignored) {
break;
- } catch (Exception | ServiceConfigurationError ignored) {
+ } catch (Exception | ServiceConfigurationError e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
Tue Feb 14 14:26:56 2023
@@ -47,6 +47,7 @@ import org.apache.poi.ss.usermodel.Shape
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.Beta;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LocaleUtil;
@@ -132,6 +133,9 @@ public class EmbeddedExtractor implement
data = new EmbeddedData(od.getFileName(),
od.getObjectData(), od.getContentType());
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOG.atWarn().withThrowable(e).log("Entry not found /
readable - ignoring OLE embedding");
}
} else if (shape instanceof Picture) {
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
Tue Feb 14 14:26:56 2023
@@ -51,6 +51,7 @@ import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.util.StringUtil;
@@ -509,6 +510,9 @@ public class EvaluationConditionalFormat
// see TextFunction.TRIM for implementation
return StringUtil.isBlank(v);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
// not a valid string value, and not a blank cell (that's
checked earlier)
return false;
}
@@ -518,6 +522,9 @@ public class EvaluationConditionalFormat
// see TextFunction.TRIM for implementation
return StringUtil.isNotBlank(v);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
// not a valid string value, but not blank
return true;
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java
Tue Feb 14 14:26:56 2023
@@ -42,6 +42,7 @@ import org.apache.poi.ss.formula.ptg.Ref
import org.apache.poi.ss.formula.ptg.Ref3DPxg;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.CellReference.NameType;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LocaleUtil;
/**
@@ -257,6 +258,9 @@ public final class OperationEvaluationCo
}
return new LazyAreaEval(0, absoluteC,
ssVersion.getLastRowIndex(), absoluteC, sre);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.REF_INVALID;
}
}
@@ -279,6 +283,9 @@ public final class OperationEvaluationCo
}
return new LazyAreaEval(absoluteR, 0, absoluteR,
ssVersion.getLastColumnIndex(), sre);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.REF_INVALID;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/SheetNameFormatter.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/SheetNameFormatter.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/SheetNameFormatter.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/SheetNameFormatter.java
Tue Feb 14 14:26:56 2023
@@ -23,6 +23,7 @@ import java.util.regex.Pattern;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.SpreadsheetVersion;
+import org.apache.poi.util.ExceptionUtil;
/**
* Formats sheet names for use in formula expressions.
@@ -68,6 +69,9 @@ public final class SheetNameFormatter {
appendAndEscape(out, rawSheetName);
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new IllegalStateException(e);
}
}
@@ -96,6 +100,9 @@ public final class SheetNameFormatter {
appendOrREF(out, rawSheetName);
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new IllegalStateException(e);
}
}
@@ -125,6 +132,9 @@ public final class SheetNameFormatter {
sb.append(ch);
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
throw new IllegalStateException(e);
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
Tue Feb 14 14:26:56 2023
@@ -40,6 +40,7 @@ import org.apache.poi.ss.formula.udf.UDF
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.util.CellRangeAddressBase;
import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.Internal;
import static org.apache.logging.log4j.util.Unbox.box;
@@ -332,6 +333,9 @@ public final class WorkbookEvaluator {
String msg = "Error evaluating cell " + cr.formatAsString();
return new NotImplementedException(msg, inner);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
// avoid bombing out during exception handling
LOG.atError().withThrowable(e).log("Can't add exception info");
return inner; // preserve original exception
Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/Switch.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/Switch.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/Switch.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/Switch.java Tue
Feb 14 14:26:56 2023
@@ -24,6 +24,7 @@ import org.apache.poi.ss.formula.eval.Ev
import org.apache.poi.ss.formula.eval.OperandResolver;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction;
+import org.apache.poi.util.ExceptionUtil;
import static org.apache.poi.ss.formula.eval.RelationalOperationEval.EqualEval;
@@ -53,6 +54,9 @@ public final class Switch implements Fre
try {
expression = OperandResolver.getSingleValue(args[0],
ec.getRowIndex(), ec.getColumnIndex());
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.NA;
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XLookupFunction.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XLookupFunction.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XLookupFunction.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XLookupFunction.java
Tue Feb 14 14:26:56 2023
@@ -23,6 +23,7 @@ import org.apache.poi.ss.formula.eval.*;
import org.apache.poi.ss.formula.functions.ArrayFunction;
import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.functions.LookupUtils;
+import org.apache.poi.util.ExceptionUtil;
/**
* Implementation of Excel function XLOOKUP()
@@ -81,6 +82,9 @@ final class XLookupFunction implements F
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID;
}
}
@@ -93,6 +97,9 @@ final class XLookupFunction implements F
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XMatchFunction.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XMatchFunction.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XMatchFunction.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/XMatchFunction.java
Tue Feb 14 14:26:56 2023
@@ -22,6 +22,7 @@ import org.apache.poi.ss.formula.TwoDEva
import org.apache.poi.ss.formula.eval.*;
import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.functions.LookupUtils;
+import org.apache.poi.util.ExceptionUtil;
/**
* Implementation of Excel function XMATCH()
@@ -64,6 +65,9 @@ final class XMatchFunction implements Fr
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID;
}
}
@@ -76,6 +80,9 @@ final class XMatchFunction implements Fr
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Areas.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Areas.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Areas.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Areas.java
Tue Feb 14 14:26:56 2023
@@ -22,6 +22,7 @@ import org.apache.poi.ss.formula.eval.Nu
import org.apache.poi.ss.formula.eval.RefListEval;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.ptg.NumberPtg;
+import org.apache.poi.util.ExceptionUtil;
/**
* Returns the number of areas in a reference. An area is a range of
contiguous cells or a single cell.
@@ -42,6 +43,9 @@ public final class Areas implements Func
}
return new NumberEval(new NumberPtg(result));
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID;
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
Tue Feb 14 14:26:56 2023
@@ -21,6 +21,7 @@ import org.apache.poi.ss.formula.eval.Er
import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.NumberEval;
import org.apache.poi.ss.formula.eval.ValueEval;
+import org.apache.poi.util.ExceptionUtil;
import java.util.List;
@@ -57,6 +58,9 @@ public class Correl extends Fixed2ArgFun
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.NA;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
Tue Feb 14 14:26:56 2023
@@ -22,6 +22,7 @@ import org.apache.poi.ss.formula.eval.Er
import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.NumberEval;
import org.apache.poi.ss.formula.eval.ValueEval;
+import org.apache.poi.util.ExceptionUtil;
import java.util.List;
@@ -57,6 +58,9 @@ public class Covar extends Fixed2ArgFunc
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.NA;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
Tue Feb 14 14:26:56 2023
@@ -32,6 +32,7 @@ import org.apache.poi.ss.formula.eval.St
import org.apache.poi.ss.formula.eval.StringValueEval;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.util.NumberComparer;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.Internal;
import org.apache.poi.util.LocaleUtil;
@@ -136,6 +137,9 @@ public final class DStarRunner implement
return e.getErrorEval();
}
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
if (!algorithm.allowEmptyMatchField()) {
return ErrorEval.VALUE_INVALID;
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Days.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Days.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Days.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Days.java
Tue Feb 14 14:26:56 2023
@@ -28,6 +28,7 @@ import org.apache.poi.ss.formula.eval.Op
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.util.DateParser;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LocaleUtil;
/**
@@ -82,6 +83,9 @@ public class Days implements FreeRefFunc
double d0 = NumericFunction.singleOperandEvaluate(ve, srcRowIndex,
srcColumnIndex);
return getDate(d0);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
String strText1 = OperandResolver.coerceValueToString(ve);
return DateParser.parseLocalDate(strText1);
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Forecast.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Forecast.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Forecast.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Forecast.java
Tue Feb 14 14:26:56 2023
@@ -22,6 +22,7 @@ import org.apache.poi.ss.formula.eval.Ev
import org.apache.poi.ss.formula.eval.NumberEval;
import org.apache.poi.ss.formula.eval.OperandResolver;
import org.apache.poi.ss.formula.eval.ValueEval;
+import org.apache.poi.util.ExceptionUtil;
import java.util.List;
@@ -73,6 +74,9 @@ public class Forecast extends Fixed3ArgF
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.NA;
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Indirect.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Indirect.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Indirect.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Indirect.java
Tue Feb 14 14:26:56 2023
@@ -31,6 +31,7 @@ import org.apache.poi.ss.formula.eval.Op
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.ptg.Area3DPxg;
import org.apache.poi.ss.usermodel.Table;
+import org.apache.poi.util.ExceptionUtil;
/**
* Implementation for Excel function INDIRECT<p>
@@ -142,6 +143,9 @@ public final class Indirect implements F
try {
return ec.getDynamicReference(workbookName, sheetName,
refStrPart1, refStrPart2, isA1style);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOGGER.atWarn().log("Indirect function: failed to parse
reference {}", text, e);
return ErrorEval.REF_INVALID;
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/NumberValueFunction.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/NumberValueFunction.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/NumberValueFunction.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/NumberValueFunction.java
Tue Feb 14 14:26:56 2023
@@ -25,6 +25,7 @@ import org.apache.poi.ss.formula.eval.Nu
import org.apache.poi.ss.formula.eval.ErrorEval;
import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.OperandResolver;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LocaleUtil;
/**
@@ -111,6 +112,9 @@ public final class NumberValueFunction i
} catch (EvaluationException e) {
return e.getErrorEval();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.VALUE_INVALID; //If any of the arguments are not
valid, NUMBERVALUE returns the #VALUE! error value.
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java
Tue Feb 14 14:26:56 2023
@@ -22,6 +22,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.poi.ss.formula.eval.*;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.util.DateParser;
+import org.apache.poi.util.ExceptionUtil;
import java.time.DateTimeException;
import java.time.LocalDate;
@@ -60,11 +61,17 @@ public class TimeValue extends Fixed1Arg
try {
return parseTimeFromDateTime(dateTimeText);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
try {
//this could be a time (with no date part) - prepend a
dummy date because
//parseTimeFromDateTime needs it
return parseTimeFromDateTime("1/01/2000 " + dateTimeText);
} catch (Exception e2) {
+ if (ExceptionUtil.isFatal(e2)) {
+ ExceptionUtil.rethrow(e2);
+ }
LocalDate ld = DateParser.parseLocalDate(dateTimeText);
//return 0 as this is a pure date with no time element
return new NumberEval(0);
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/WeekNum.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/WeekNum.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/WeekNum.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/WeekNum.java
Tue Feb 14 14:26:56 2023
@@ -33,6 +33,7 @@ import org.apache.poi.ss.formula.eval.Nu
import org.apache.poi.ss.formula.eval.OperandResolver;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.util.ExceptionUtil;
/**
* Implementation for Excel WeekNum() function.
@@ -69,6 +70,9 @@ public class WeekNum extends Fixed2ArgFu
.atZone(ZoneId.systemDefault())
.toLocalDate();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return ErrorEval.NUM_ERROR;
}
int returnType;
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
Tue Feb 14 14:26:56 2023
@@ -47,6 +47,7 @@ import org.apache.poi.ss.format.CellForm
import org.apache.poi.ss.formula.ConditionalFormattingEvaluator;
import org.apache.poi.ss.util.DateFormatConverter;
import org.apache.poi.ss.util.NumberToTextConverter;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.util.StringUtil;
@@ -407,6 +408,9 @@ public class DataFormatter {
// Wrap and return (non-cacheable - CellFormat does that)
return new CellFormatResultWrapper( cfmt.apply(cellValueO) );
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOG.atWarn().withThrowable(e).log("Formatting failed for
format {}, falling back", formatStr);
}
}
@@ -1119,6 +1123,9 @@ public class DataFormatter {
try {
cellType = cell.getCachedFormulaResultType();
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
return cell.getCellFormula();
}
} else {
Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java Tue Feb
14 14:26:56 2023
@@ -38,6 +38,7 @@ import org.apache.poi.ss.usermodel.RichT
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.util.ExceptionUtil;
import org.apache.poi.util.Internal;
@@ -192,6 +193,9 @@ public class SheetUtil {
try {
sval = formatter.formatCellValue(cell, dummyEvaluator);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
sval = String.valueOf(cell.getNumericCellValue());
}
} else if (cellType == CellType.BOOLEAN) {
Modified: poi/trunk/poi/src/main/java/org/apache/poi/util/Configurator.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/util/Configurator.java?rev=1907651&r1=1907650&r2=1907651&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/util/Configurator.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/util/Configurator.java Tue Feb
14 14:26:56 2023
@@ -34,6 +34,9 @@ public class Configurator {
try {
return Integer.parseInt(property);
} catch (Exception e) {
+ if (ExceptionUtil.isFatal(e)) {
+ ExceptionUtil.rethrow(e);
+ }
LOG.atError().log("System property -D{} does not contains a valid
integer: {}", systemProperty, property);
return defaultValue;
}
Added: poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java?rev=1907651&view=auto
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
(added)
+++ poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java Tue
Feb 14 14:26:56 2023
@@ -0,0 +1,60 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.util;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class ExceptionUtilTest {
+ @Test
+ void testRuntimeException() {
+ assertFalse(ExceptionUtil.isFatal(new RuntimeException("runtime
issue")));
+ }
+
+ @Test
+ void testPlainException() {
+ assertFalse(ExceptionUtil.isFatal(new Exception("plain issue")));
+ }
+
+ @Test
+ void testOutOfMemoryError() {
+ assertTrue(ExceptionUtil.isFatal(new OutOfMemoryError("oom")));
+ }
+
+ @Test
+ void testVirtualMachineError() {
+ assertTrue(ExceptionUtil.isFatal(new VirtualMachineError(){}));
+ }
+
+
+ @Test
+ void testThreadDeath() {
+ assertTrue(ExceptionUtil.isFatal(new ThreadDeath()));
+ }
+
+ @Test
+ void testInterruptedException() {
+ assertTrue(ExceptionUtil.isFatal(new InterruptedException()));
+ }
+
+ @Test
+ void testLinkageError() {
+ assertTrue(ExceptionUtil.isFatal(new LinkageError()));
+ }
+}
Propchange:
poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]