Author: fanningpj
Date: Fri Sep  2 22:40:21 2022
New Revision: 1903836

URL: http://svn.apache.org/viewvc?rev=1903836&view=rev
Log:
rework CellUtil test

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java?rev=1903836&r1=1903835&r2=1903836&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java
 Fri Sep  2 22:40:21 2022
@@ -79,8 +79,8 @@ class TestXSSFCellUtil extends BaseTestC
                     cell, CellUtil.FILL_FOREGROUND_COLOR_COLOR, null);
 
             assertNotEquals(color, 
cell.getCellStyle().getFillForegroundColorColor());
-            assertEquals(IndexedColors.AUTOMATIC.getIndex(),
-                    ((XSSFColor) 
cell.getCellStyle().getFillForegroundColorColor()).getIndex());
+            assertNull(cell.getCellStyle().getFillForegroundColorColor());
+            assertEquals(IndexedColors.AUTOMATIC.getIndex(), 
cell.getCellStyle().getFillForegroundColor());
         }
     }
 }
\ No newline at end of file

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java?rev=1903836&r1=1903835&r2=1903836&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java Fri Sep  2 
22:40:21 2022
@@ -463,12 +463,12 @@ public final class CellUtil {
             disableNullColorCheck = true;
             propMap = new HashMap<>();
             propMap.put(CellUtil.FILL_FOREGROUND_COLOR_COLOR, null);
-            propMap.put(CellUtil.FILL_FOREGROUND_COLOR, 
IndexedColors.AUTOMATIC.getIndex());
+            propMap.put(CellUtil.FILL_FOREGROUND_COLOR, null);
         } else if (CellUtil.FILL_BACKGROUND_COLOR_COLOR.equals(propertyName) 
&& propertyValue == null) {
             disableNullColorCheck = true;
             propMap = new HashMap<>();
             propMap.put(CellUtil.FILL_BACKGROUND_COLOR_COLOR, null);
-            propMap.put(CellUtil.FILL_BACKGROUND_COLOR, 
IndexedColors.AUTOMATIC.getIndex());
+            propMap.put(CellUtil.FILL_BACKGROUND_COLOR, null);
         } else {
             propMap = Collections.singletonMap(propertyName, propertyValue);
         }
@@ -527,7 +527,7 @@ public final class CellUtil {
     private static void putAll(final Map<String, Object> src, Map<String, 
Object> dest) {
         for (final String key : src.keySet()) {
             if (shortValues.contains(key)) {
-                dest.put(key, getShort(src, key));
+                dest.put(key, nullableShort(src, key));
             } else if (colorValues.contains(key)) {
                 dest.put(key, getColor(src, key));
             } else if (intValues.contains(key)) {
@@ -567,11 +567,18 @@ public final class CellUtil {
         style.setDataFormat(getShort(properties, DATA_FORMAT));
         style.setFillPattern(getFillPattern(properties, FILL_PATTERN));
 
-        style.setFillForegroundColor(getShort(properties, 
FILL_FOREGROUND_COLOR));
-        style.setFillBackgroundColor(getShort(properties, 
FILL_BACKGROUND_COLOR));
+        Short fillForeColorShort = nullableShort(properties, 
FILL_FOREGROUND_COLOR);
+        if (fillForeColorShort != null) {
+            style.setFillForegroundColor(fillForeColorShort);
+        }
+        Short fillBackColorShort = nullableShort(properties, 
FILL_BACKGROUND_COLOR);
+        if (fillBackColorShort != null) {
+            style.setFillBackgroundColor(fillBackColorShort);
+        }
 
         Color foregroundFillColor = getColor(properties, 
FILL_FOREGROUND_COLOR_COLOR);
         Color backgroundFillColor = getColor(properties, 
FILL_BACKGROUND_COLOR_COLOR);
+
         if (foregroundFillColor != null) {
             try {
                 style.setFillForegroundColor(foregroundFillColor);
@@ -615,6 +622,17 @@ public final class CellUtil {
         }
         return 0;
     }
+
+    private static Short nullableShort(Map<String, Object> properties, String 
name) {
+        Object value = properties.get(name);
+        if (value instanceof Short) {
+            return (Short) value;
+        }
+        if (value instanceof Number) {
+            return ((Number) value).shortValue();
+        }
+        return null;
+    }
     
     /**
      * Utility method that returns the named Color value from the given map.
@@ -672,7 +690,7 @@ public final class CellUtil {
             border = BorderStyle.NONE;
         }
         else {
-            throw new RuntimeException("Unexpected border style class. Must be 
BorderStyle or Short (deprecated).");
+            throw new IllegalStateException("Unexpected border style class. 
Must be BorderStyle or Short (deprecated).");
         }
         return border;
     }
@@ -701,7 +719,7 @@ public final class CellUtil {
             pattern = FillPatternType.NO_FILL;
         }
         else {
-            throw new RuntimeException("Unexpected fill pattern style class. 
Must be FillPatternType or Short (deprecated).");
+            throw new IllegalStateException("Unexpected fill pattern style 
class. Must be FillPatternType or Short (deprecated).");
         }
         return pattern;
     }
@@ -730,7 +748,7 @@ public final class CellUtil {
             align = HorizontalAlignment.GENERAL;
         }
         else {
-            throw new RuntimeException("Unexpected horizontal alignment style 
class. Must be HorizontalAlignment or Short (deprecated).");
+            throw new IllegalStateException("Unexpected horizontal alignment 
style class. Must be HorizontalAlignment or Short (deprecated).");
         }
         return align;
     }
@@ -759,7 +777,7 @@ public final class CellUtil {
             align = VerticalAlignment.BOTTOM;
         }
         else {
-            throw new RuntimeException("Unexpected vertical alignment style 
class. Must be VerticalAlignment or Short (deprecated).");
+            throw new IllegalStateException("Unexpected vertical alignment 
style class. Must be VerticalAlignment or Short (deprecated).");
         }
         return align;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to