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 2018/08/09 17:45:36 UTC
svn commit: r1837747 - in /pdfbox/branches/2.0/pdfbox/src:
main/java/org/apache/pdfbox/cos/COSFloat.java
test/java/org/apache/pdfbox/cos/TestCOSFloat.java
Author: tilman
Date: Thu Aug 9 17:45:36 2018
New Revision: 1837747
URL: http://svn.apache.org/viewvc?rev=1837747&view=rev
Log:
PDFBOX-4289: remove double negative
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSFloat.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java?rev=1837747&r1=1837746&r2=1837747&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java Thu Aug 9 17:45:36 2018
@@ -61,26 +61,31 @@ public class COSFloat extends COSNumber
}
catch( NumberFormatException e )
{
- if (aFloat.matches("^0\\.0*\\-\\d+"))
+ if (aFloat.startsWith("--"))
+ {
+ // PDFBOX-4289 has --16.33
+ valueAsString = aFloat.substring(1);
+ }
+ else if (aFloat.matches("^0\\.0*\\-\\d+"))
{
// PDFBOX-2990 has 0.00000-33917698
// PDFBOX-3369 has 0.00-35095424
// PDFBOX-3500 has 0.-262
- try
- {
- valueAsString = "-" + valueAsString.replaceFirst("\\-", "");
- value = new BigDecimal(valueAsString);
- checkMinMaxValues();
- }
- catch (NumberFormatException e2)
- {
- throw new IOException("Error expected floating point number actual='" + aFloat + "'", e2);
- }
+ valueAsString = "-" + valueAsString.replaceFirst("\\-", "");
}
else
{
throw new IOException("Error expected floating point number actual='" + aFloat + "'", e);
}
+ try
+ {
+ value = new BigDecimal(valueAsString);
+ checkMinMaxValues();
+ }
+ catch (NumberFormatException e2)
+ {
+ throw new IOException("Error expected floating point number actual='" + aFloat + "'", e2);
+ }
}
}
Modified: pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSFloat.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSFloat.java?rev=1837747&r1=1837746&r2=1837747&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSFloat.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSFloat.java Thu Aug 9 17:45:36 2018
@@ -300,6 +300,13 @@ public class TestCOSFloat extends TestCO
writePDFTester.runTest(0.000000000000000000000000000000001f);
}
+ public void testDoubleNegative() throws IOException
+ {
+ // PDFBOX-4289
+ COSFloat cosFloat = new COSFloat("--16.33");
+ assertEquals(-16.33f, cosFloat.floatValue());
+ }
+
private String floatToString(float value)
{
// use a BigDecimal as intermediate state to avoid