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/02/01 20:08:51 UTC

svn commit: r1656348 - /pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java

Author: tilman
Date: Sun Feb  1 19:08:50 2015
New Revision: 1656348

URL: http://svn.apache.org/r1656348
Log:
PDFBOX-2652: validate Destination as separate process, except in GoToRemoteAction

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java?rev=1656348&r1=1656347&r2=1656348&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java Sun Feb  1 19:08:50 2015
@@ -25,12 +25,16 @@ import static org.apache.pdfbox.prefligh
 import static org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_INVALID_DEST;
 
 import java.io.IOException;
+import org.apache.pdfbox.cos.COSBase;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink;
+import static org.apache.pdfbox.preflight.PreflightConfiguration.DESTINATION_PROCESS;
 import org.apache.pdfbox.preflight.PreflightContext;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 import org.apache.pdfbox.preflight.exception.ValidationException;
+import org.apache.pdfbox.preflight.utils.ContextHelper;
 
 /**
  * Validation class for the LinkAnnotation
@@ -50,7 +54,7 @@ public class LinkAnnotationValidator ext
     }
 
     /**
-     * In addition of the AnnotationValidator.validate() method, this method executes the the checkDest method.
+     * In addition of the AnnotationValidator.validate() method, this method executes the checkDest method.
      * 
      * @see AnnotationValidator#validate()
      */
@@ -77,10 +81,16 @@ public class LinkAnnotationValidator ext
                         "Dest can't be used due to A element"));
                 return false;
             }
+            COSDictionary dict = pdLink.getDictionary();
+            COSBase dest = dict.getDictionaryObject(COSName.DEST);
+            if (dest != null)
+            {
+                ContextHelper.validateElement(ctx, dest, DESTINATION_PROCESS);    
+            }
         }
         catch (IOException e)
         {
-            ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_DEST, "Dest can't be checked"));
+            ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_DEST, e.getMessage(), e));
             return false;
         }
         return true;