You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by gb...@apache.org on 2012/05/09 21:35:29 UTC

svn commit: r1336366 - in /pdfbox/trunk/preflight: pom.xml src/main/java/org/apache/padaf/preflight/AbstractValidator.java src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java src/main/javacc/pdf_full_grammar.jj

Author: gbailleul
Date: Wed May  9 19:35:29 2012
New Revision: 1336366

URL: http://svn.apache.org/viewvc?rev=1336366&view=rev
Log:
PDFBOX-1279 : Javacc parser is now independent of jvm file encoding.
Specific source encoding of preflight removed

Modified:
    pdfbox/trunk/preflight/pom.xml
    pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/AbstractValidator.java
    pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java
    pdfbox/trunk/preflight/src/main/javacc/pdf_full_grammar.jj

Modified: pdfbox/trunk/preflight/pom.xml
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/pom.xml?rev=1336366&r1=1336365&r2=1336366&view=diff
==============================================================================
--- pdfbox/trunk/preflight/pom.xml (original)
+++ pdfbox/trunk/preflight/pom.xml Wed May  9 19:35:29 2012
@@ -40,7 +40,6 @@
 
   <properties>
     <compileSource>1.5</compileSource>
-    <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
   </properties>
 
   <build>

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/AbstractValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/AbstractValidator.java?rev=1336366&r1=1336365&r2=1336366&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/AbstractValidator.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/AbstractValidator.java Wed May  9 19:35:29 2012
@@ -23,6 +23,7 @@ package org.apache.padaf.preflight;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -39,6 +40,8 @@ public abstract class AbstractValidator 
 
 
     public static final String version = "${project.version}";
+    
+    public static final Charset encoding = Charset.forName("ISO-8859-1");
 
     public static final String fullName = "PADAF - "+version;
 

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java?rev=1336366&r1=1336365&r2=1336366&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/PdfA1bValidator.java Wed May  9 19:35:29 2012
@@ -22,6 +22,7 @@
 package org.apache.padaf.preflight;
 
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.util.ArrayList;
 
 import javax.activation.DataSource;
@@ -56,7 +57,10 @@ public class PdfA1bValidator extends Abs
 			
 			// syntax (javacc) validation
 			try {
-				PDFParser parser = new PDFParser(source.getInputStream());
+		                InputStreamReader reader = new InputStreamReader(
+		                        source.getInputStream(),encoding); 
+
+		                PDFParser parser = new PDFParser(reader);
 				handler.setParser(parser);
 				parser.PDF();
 			} catch (IOException e) {

Modified: pdfbox/trunk/preflight/src/main/javacc/pdf_full_grammar.jj
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/javacc/pdf_full_grammar.jj?rev=1336366&r1=1336365&r2=1336366&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/javacc/pdf_full_grammar.jj (original)
+++ pdfbox/trunk/preflight/src/main/javacc/pdf_full_grammar.jj Wed May  9 19:35:29 2012
@@ -37,6 +37,7 @@ import org.apache.padaf.preflight.BodyPa
 import org.apache.padaf.preflight.CrossRefParseException;
 import org.apache.padaf.preflight.TrailerParseException;
 import org.apache.padaf.preflight.PdfParseException;
+import org.apache.padaf.preflight.AbstractValidator;
 
 import static org.apache.padaf.preflight.ValidationConstants.*;
 
@@ -307,19 +308,19 @@ void literal() {
             if (currentToken.kind == 0 ){
                throw new ParseException("EOF reach before the end of the literal string.");
             }
-            literalLength += currentToken.image.getBytes().length;
+            literalLength += currentToken.image.getBytes(AbstractValidator.encoding).length;
             if ( currentToken.kind == OBJ_STRING_LIT ) {
                jj_consume_token(OBJ_STRING_LIT);
-               if (previous != null && previous.image.getBytes()[previous.image.getBytes().length-1]!='\\') {
+               if (previous != null && previous.image.getBytes(AbstractValidator.encoding)[previous.image.getBytes(AbstractValidator.encoding).length-1]!='\\') {
                   ++nesting;
                }
             } else if ( currentToken.kind == INNER_START_LIT ) {
                jj_consume_token(INNER_START_LIT);
-               if (previous != null && previous.image.getBytes()[previous.image.getBytes().length-1]!='\\') {
+               if (previous != null && previous.image.getBytes(AbstractValidator.encoding)[previous.image.getBytes(AbstractValidator.encoding).length-1]!='\\') {
                   ++nesting;
                }
             } else if ( currentToken.kind == END_LITERAL ) {
-               if (previous != null && previous.image.getBytes()[previous.image.getBytes().length-1]!='\\') {
+               if (previous != null && previous.image.getBytes(AbstractValidator.encoding)[previous.image.getBytes(AbstractValidator.encoding).length-1]!='\\') {
                   --nesting;
                }
                jj_consume_token(END_LITERAL);
@@ -338,8 +339,8 @@ void literal() {
 
 JAVACODE
 void checkNameLength() throws ParseException {
-	if (token != null && token.image.getBytes().length > MAX_NAME_SIZE) {
-		throw new PdfParseException("Object Name is toot long : " + token.image.getBytes().length, ERROR_SYNTAX_NAME_TOO_LONG);
+	if (token != null && token.image.getBytes(AbstractValidator.encoding).length > MAX_NAME_SIZE) {
+		throw new PdfParseException("Object Name is toot long : " + token.image.getBytes(AbstractValidator.encoding).length, ERROR_SYNTAX_NAME_TOO_LONG);
 	} else {
 		// Nothing to do
 	}	
@@ -347,7 +348,7 @@ void checkNameLength() throws ParseExcep
 
 JAVACODE
 void checkMagicNumberLength() throws ParseException {
-   if (token != null && token.image.getBytes().length < 4) {
+   if (token != null && token.image.getBytes(AbstractValidator.encoding).length < 4) {
       throw new PdfParseException("Not enough bytes after the Header (at least 4 bytes should be present with a value bigger than 127) : " + token.image, ERROR_SYNTAX_HEADER);
    } else {
       // Nothing to do