You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/09/25 09:36:25 UTC

svn commit: r1705241 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java

Author: tilman
Date: Fri Sep 25 07:36:25 2015
New Revision: 1705241

URL: http://svn.apache.org/viewvc?rev=1705241&view=rev
Log:
PDFBOX-2990: workaround for floats like 0.00000-33917698

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java?rev=1705241&r1=1705240&r2=1705241&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java Fri Sep 25 07:36:25 2015
@@ -59,7 +59,24 @@ public class COSFloat extends COSNumber
         }
         catch( NumberFormatException e )
         {
-            throw new IOException( "Error expected floating point number actual='" +aFloat + "'" );
+            if (aFloat.startsWith("0.00000-"))
+            {
+                // PDFBOX-2990 has 0.00000-33917698
+                // Let's wait what other floats will be coming before doing a more general workaround.
+                try
+                {
+                    valueAsString = "-0.00000" + aFloat.substring(8);
+                    value = new BigDecimal(valueAsString);
+                }
+                catch (NumberFormatException e2)
+                {
+                    throw new IOException("Error expected floating point number actual='" + aFloat + "'", e2);
+                }
+            }
+            else
+            {
+                throw new IOException("Error expected floating point number actual='" + aFloat + "'", e);
+            }
         }
     }