From bf49bd2afc252b680a6a2f0f8617dd4af69bb0da Mon Sep 17 00:00:00 2001
From: Shane Carr <shane@unicode.org>
Date: Sat, 3 Feb 2018 07:48:29 +0000
Subject: [PATCH] ICU-13461 Fixing coverity defects in new number parsing code.

X-SVN-Rev: 40834
---
 .../src/com/ibm/icu/impl/number/parse/DecimalMatcher.java  | 1 +
 .../com/ibm/icu/impl/number/parse/NumberParserImpl.java    | 7 +------
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/DecimalMatcher.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/DecimalMatcher.java
index 4a12af11c20..7c5ab7994fe 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/DecimalMatcher.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/DecimalMatcher.java
@@ -304,6 +304,7 @@ public class DecimalMatcher implements NumberParseMatcher {
         }
 
         if (isScientific && segment.getOffset() != initialOffset) {
+            assert result.quantity != null; // scientific notation always comes after the number
             boolean overflow = (exponent == Integer.MAX_VALUE);
             if (!overflow) {
                 try {
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/NumberParserImpl.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/NumberParserImpl.java
index 73654686dbb..12b9a0535c7 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/NumberParserImpl.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/parse/NumberParserImpl.java
@@ -9,7 +9,6 @@ import java.util.Comparator;
 import java.util.List;
 
 import com.ibm.icu.impl.number.AffixPatternProvider;
-import com.ibm.icu.impl.number.AffixUtils;
 import com.ibm.icu.impl.number.CustomSymbolCurrency;
 import com.ibm.icu.impl.number.DecimalFormatProperties;
 import com.ibm.icu.impl.number.PatternStringParser;
@@ -225,11 +224,7 @@ public class NumberParserImpl {
         ///////////////////////////////
 
         if (!isStrict) {
-            if (!isStrict
-                    || patternInfo.containsSymbolType(AffixUtils.TYPE_PLUS_SIGN)
-                    || properties.getSignAlwaysShown()) {
-                parser.addMatcher(PlusSignMatcher.getInstance(symbols, false));
-            }
+            parser.addMatcher(PlusSignMatcher.getInstance(symbols, false));
             parser.addMatcher(MinusSignMatcher.getInstance(symbols, false));
             parser.addMatcher(NanMatcher.getInstance(symbols, parseFlags));
             parser.addMatcher(PercentMatcher.getInstance(symbols));
-- 
2.40.0