From fc2bcfae9a2c9c6260f8e007dead2a8d523b8c6c Mon Sep 17 00:00:00 2001 From: Javen O'Neal Date: Wed, 18 Oct 2017 14:08:43 +0000 Subject: [PATCH] cleanup for r1812476: avoid NPEs from string.isEmpty() git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1812516 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java | 8 ++++++++ src/java/org/apache/poi/ss/formula/eval/StringEval.java | 3 +++ src/java/org/apache/poi/ss/usermodel/FractionFormat.java | 2 +- .../crypt/dsig/services/RelationshipTransformService.java | 2 +- .../java/org/apache/poi/xslf/usermodel/XSLFTextRun.java | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java b/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java index 9273f53e0e..6a16e3f9dc 100644 --- a/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java +++ b/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java @@ -374,6 +374,10 @@ public class CryptoFunctions { * @return the verifier (actually a short value) */ public static int createXorVerifier1(String password) { + if (password == null) { + throw new IllegalArgumentException("Password cannot be null"); + } + byte[] arrByteChars = toAnsiPassword(password); // SET Verifier TO 0x0000 @@ -412,6 +416,10 @@ public class CryptoFunctions { * @see Funny: How the new powerful cryptography implemented in Word 2007 turns it into a perfect tool for document password removal. */ public static int createXorVerifier2(String password) { + if (password == null) { + throw new IllegalArgumentException("Password cannot be null"); + } + //Array to hold Key Values byte[] generatedKey = new byte[4]; diff --git a/src/java/org/apache/poi/ss/formula/eval/StringEval.java b/src/java/org/apache/poi/ss/formula/eval/StringEval.java index 0e35e9dea4..61515e438f 100644 --- a/src/java/org/apache/poi/ss/formula/eval/StringEval.java +++ b/src/java/org/apache/poi/ss/formula/eval/StringEval.java @@ -17,6 +17,8 @@ package org.apache.poi.ss.formula.eval; +//import org.checkerframework.checker.nullness.qual.NonNull; + import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.ss.formula.ptg.StringPtg; @@ -27,6 +29,7 @@ public final class StringEval implements StringValueEval { public static final StringEval EMPTY_INSTANCE = new StringEval(""); + //@NotNull private final String _value; public StringEval(Ptg ptg) { diff --git a/src/java/org/apache/poi/ss/usermodel/FractionFormat.java b/src/java/org/apache/poi/ss/usermodel/FractionFormat.java index 76834a7ed8..d90d50068b 100644 --- a/src/java/org/apache/poi/ss/usermodel/FractionFormat.java +++ b/src/java/org/apache/poi/ss/usermodel/FractionFormat.java @@ -150,7 +150,7 @@ public class FractionFormat extends Format { } //if whole part has to go into the numerator - if (wholePartFormatString.isEmpty()){ + if (wholePartFormatString == null || wholePartFormatString.isEmpty()){ int trueNum = (fract.getDenominator()*(int)wholePart)+fract.getNumerator(); sb.append(trueNum).append("/").append(fract.getDenominator()); return sb.toString(); diff --git a/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java b/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java index c4d767fac5..0b8037d3ae 100644 --- a/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java +++ b/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java @@ -205,7 +205,7 @@ public class RelationshipTransformService extends TransformService { String id = el.getAttribute("Id"); if (sourceIds.contains(id)) { String targetMode = el.getAttribute("TargetMode"); - if (targetMode.isEmpty()) { + if (targetMode == null || targetMode.isEmpty()) { el.setAttribute("TargetMode", "Internal"); } rsList.put(id, el); diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java index a1a3065a10..ea53360084 100644 --- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java +++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java @@ -845,7 +845,7 @@ public class XSLFTextRun implements TextRun { } // SYMBOL is missing - if (font == null || !font.isSetTypeface() || font.getTypeface().isEmpty()) { + if (font == null || !font.isSetTypeface() || "".equals(font.getTypeface())) { font = coll.getLatin(); } } -- 2.39.5