You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/01/27 19:39:42 UTC

svn commit: r1561782 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java

Author: lehmi
Date: Mon Jan 27 18:39:41 2014
New Revision: 1561782

URL: http://svn.apache.org/r1561782
Log:
PDFBOX-1865: take the length of the stream into account when comparing xobjects

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java?rev=1561782&r1=1561781&r2=1561782&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java Mon Jan 27 18:39:41 2014
@@ -126,8 +126,18 @@ public class PDXObjectForm extends PDXOb
             	Map<String, PDXObject> xobjects = retval.getXObjects();
             	if (xobjects != null && xobjects.containsKey(name))
             	{
-            		retval.removeXObject(name);
-            		LOG.debug("Removed XObjectForm "+name+" to avoid a recursion");
+            	    PDXObject xobject = xobjects.get(name);
+            	    if (xobject instanceof PDXObjectForm)
+            	    {
+            	        int length1 = getCOSStream().getInt(COSName.LENGTH);
+                        int length2 = xobject.getCOSStream().getInt(COSName.LENGTH);
+                        // seems to be the same object
+            	        if (length1 == length2)
+            	        {
+            	            retval.removeXObject(name);
+                            LOG.debug("Removed XObjectForm "+name+" to avoid a recursion");
+            	        }
+            	    }
             	}
             }
         }