Author: fanningpj
Date: Sun May 11 13:26:06 2025
New Revision: 1925500

URL: http://svn.apache.org/viewvc?rev=1925500&view=rev
Log:
try to avoid class cast issues

Modified:
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java?rev=1925500&r1=1925499&r2=1925500&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
 Sun May 11 13:26:06 2025
@@ -578,9 +578,16 @@ public class XSSFTextParagraph implement
         if(lnSpc > 0) {
             // check if the percentage value is scaled
             CTTextNormalAutofit normAutofit = 
_shape.getTxBody().getBodyPr().getNormAutofit();
-            if(normAutofit != null) {
-                double scale = 1 - (double)normAutofit.getLnSpcReduction() / 
100000;
-                lnSpc *= scale;
+            if(normAutofit != null && normAutofit.isSetLnSpcReduction()) {
+                final Object lnSpcReduction = normAutofit.getLnSpcReduction();
+                final int divisor = 100000;
+                if (lnSpcReduction instanceof Number) {
+                    double scale = 1 - ((Number) lnSpcReduction).doubleValue() 
/ divisor;
+                    lnSpc *= scale;
+                } else if (lnSpcReduction instanceof String) {
+                    double scale = 1 - Double.parseDouble((String) 
lnSpcReduction) / divisor;
+                    lnSpc *= scale;
+                }
             }
         }
 

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java?rev=1925500&r1=1925499&r2=1925500&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
 Sun May 11 13:26:06 2025
@@ -130,7 +130,15 @@ public class XSSFTextRun {
         double scale = 1;
         double size = XSSFFont.DEFAULT_FONT_SIZE;   // default font size
         CTTextNormalAutofit afit = 
getParentParagraph().getParentShape().getTxBody().getBodyPr().getNormAutofit();
-        if(afit != null) scale = (double)afit.getFontScale() / 100000;
+        if (afit != null && afit.isSetFontScale()) {
+            final Object fs = afit.getFontScale();
+            final int divisor = 100000;
+            if (fs instanceof Number) {
+                scale = ((Number) fs).doubleValue() / divisor;
+            } else if (fs instanceof String) {
+                scale = Double.parseDouble((String) fs) / divisor;
+            }
+        }
 
         CTTextCharacterProperties rPr = getRPrOrNull();
         if(rPr != null && rPr.isSetSz()){



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

Reply via email to