Author: tilman
Date: Fri Jun 19 15:52:48 2015
New Revision: 1686439

URL: http://svn.apache.org/r1686439
Log:
PDFBOX-2831: avoid ArrayIndexOutOfBoundsException if diacritic on ligature

Modified:
    
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/TextPosition.java

Modified: 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/TextPosition.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/TextPosition.java?rev=1686439&r1=1686438&r2=1686439&view=diff
==============================================================================
--- 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/TextPosition.java
 (original)
+++ 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/TextPosition.java
 Fri Jun 19 15:52:48 2015
@@ -16,6 +16,8 @@
  */
 package org.apache.pdfbox.util;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.font.PDFont;
 
@@ -27,6 +29,8 @@ import org.apache.pdfbox.pdmodel.font.PD
  */
 public class TextPosition
 {
+    private static final Log LOG = LogFactory.getLog(TextPosition.class);
+
     /* TextMatrix for the start of the text object.  Coordinates
      * are in display units and have not been adjusted. */
     private Matrix textPos;
@@ -686,6 +690,13 @@ public class TextPosition
 
         for (int i = 0; i < strLen && !wasAdded; i++)
         {
+            if (i >= widths.length)
+            {
+                LOG.info("diacritic " + diacritic.getCharacter() + " on 
ligature " + getCharacter() + 
+                        " is not supported yet and is ignored (PDFBOX-2831)");
+                break;
+            }
+            
             float currCharXEnd = currCharXStart + widths[i];
 
             /*


Reply via email to