diff options
Diffstat (limited to 'src/main/java')
7 files changed, 31 insertions, 9 deletions
| diff --git a/src/main/java/at/gv/egiz/pdfas/exceptions/ErrorCode.java b/src/main/java/at/gv/egiz/pdfas/exceptions/ErrorCode.java index c51d10a..d903c9b 100644 --- a/src/main/java/at/gv/egiz/pdfas/exceptions/ErrorCode.java +++ b/src/main/java/at/gv/egiz/pdfas/exceptions/ErrorCode.java @@ -59,6 +59,7 @@ public final class ErrorCode    public static final int PLACEHOLDER_EXCEPTION = 700;
    public static final int CAPTION_NOT_FOUND_EXCEPTION = 701;
 +  public static final int UNABLE_TO_PARSE_ID = 800;
    public static final int CORRECTOR_EXCEPTION = 801;
    public static final int EXTERNAL_CORRECTOR_TIMEOUT_REACHED = 802;  
 diff --git a/src/main/java/at/gv/egiz/pdfas/impl/verificator/binary/BinaryVerificator_1_0_0.java b/src/main/java/at/gv/egiz/pdfas/impl/verificator/binary/BinaryVerificator_1_0_0.java index c2ec8ff..3107368 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/verificator/binary/BinaryVerificator_1_0_0.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/verificator/binary/BinaryVerificator_1_0_0.java @@ -29,6 +29,7 @@ import at.gv.egiz.pdfas.framework.input.PdfDataSource;  import at.gv.egiz.pdfas.framework.verificator.Verificator;
  import at.gv.egiz.pdfas.impl.input.CompoundPdfDataSourceImpl;
  import at.gv.egiz.pdfas.impl.input.DelimitedPdfDataSource;
 +import at.gv.egiz.pdfas.impl.vfilter.helper.VerificationFilterBinaryHelper;
  import at.knowcenter.wag.egov.egiz.PdfASID;
  import at.knowcenter.wag.egov.egiz.cfg.ConfigLogger;
  import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
 @@ -150,7 +151,8 @@ public class BinaryVerificator_1_0_0 implements Verificator      ArrayParseResult kz_apr = (ArrayParseResult) getRequiredValueOfKey(pdf, egiz_dict, EGIZ_KZ_NAME);
      PdfASID kz = null;
 -    String kz_string = VerificationFilter.restoreKZ(pdf, kz_apr);
 +//    String kz_string = VerificationFilter.restoreKZ(pdf, kz_apr);
 +    String kz_string = VerificationFilterBinaryHelper.restoreKZ(pdf, kz_apr);
      kz = new PdfASID(kz_string);
      if (!kz_string.equals(getMyId().toString()))
      {
 diff --git a/src/main/java/at/gv/egiz/pdfas/impl/vfilter/helper/VerificationFilterBinaryHelper.java b/src/main/java/at/gv/egiz/pdfas/impl/vfilter/helper/VerificationFilterBinaryHelper.java index b7f36d1..3ee5da0 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/vfilter/helper/VerificationFilterBinaryHelper.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/vfilter/helper/VerificationFilterBinaryHelper.java @@ -7,8 +7,10 @@ import java.io.IOException;  import java.util.ArrayList;
  import java.util.List;
 -import at.gv.egiz.pdfas.exceptions.ErrorCode;
 +import org.apache.commons.logging.Log;
 +import org.apache.commons.logging.LogFactory;
 +import at.gv.egiz.pdfas.exceptions.ErrorCode;
  import at.knowcenter.wag.egov.egiz.PdfASID;
  import at.knowcenter.wag.egov.egiz.exceptions.InvalidIDException;
  import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException;
 @@ -42,6 +44,11 @@ public final class VerificationFilterBinaryHelper    public static final byte[] EGIZ_KZ_NAME = { 'I', 'D' };
    /**
 +   * The log.
 +   */
 +  private static final Log log = LogFactory.getLog(VerificationFilterBinaryHelper.class);
 +
 +  /**
     * Tells, if the given incremental update block contains a binary signature.
     * 
     * <p>
 @@ -128,7 +135,13 @@ public final class VerificationFilterBinaryHelper      {
        List partition = new ArrayList();
 -      for (int i = 0; i < kz_apr.elements.size() / 2; i++)
 +      int linesToProcess = (kz_apr.elements.size() / 2);
 +      log.trace("Lines to process for KZ: " + linesToProcess);
 +      if (linesToProcess > 1) {
 +         log.debug("HOTFIX: forcing single line to process");
 +         linesToProcess = 1;
 +      }
 +      for (int i = 0; i < linesToProcess; i++)
        {
          NumberParseResult start_npr = (NumberParseResult) kz_apr.elements.get(i * 2);
          NumberParseResult length_npr = (NumberParseResult) kz_apr.elements.get(i * 2 + 1);
 @@ -136,7 +149,10 @@ public final class VerificationFilterBinaryHelper          StringInfo si = new StringInfo();
          si.string_start = start_npr.number;
          si.string_length = length_npr.number;
 +        si.pdf = pdf;
 +        log.trace("Adding KZ: " + si.toString());
 +        
          partition.add(si);
        }
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java b/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java index 2073714..cf6c9bf 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java @@ -96,7 +96,7 @@ public abstract class PdfAS     * The current version of the pdf-as library. This version string is logged on every invocation
     * of the api or the web application.
     */
 -  public static final String PDFAS_VERSION = "3.0.9-20090417";
 +  public static final String PDFAS_VERSION = "3.0.9-20090622";
    /**
     * The key of the strict mode setting.
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/PdfASID.java b/src/main/java/at/knowcenter/wag/egov/egiz/PdfASID.java index 0409bb7..cfa9636 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/PdfASID.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/PdfASID.java @@ -19,6 +19,7 @@ package at.knowcenter.wag.egov.egiz;  import java.io.Serializable;
 +import at.gv.egiz.pdfas.exceptions.ErrorCode;
  import at.knowcenter.wag.egov.egiz.exceptions.InvalidIDException;
  /**
 @@ -88,17 +89,17 @@ public class PdfASID implements Serializable      if (tokens.length != 5)
      {
 -      throw new InvalidIDException(800, "The doesn't have enough tokens (" + id + ")");
 +      throw new InvalidIDException(ErrorCode.UNABLE_TO_PARSE_ID, "The doesn't have enough tokens (" + id + ")");
      }
      if (!tokens[0].equals(URN))
      {
 -      throw new InvalidIDException(800, "The id must start with " + URN + " (" + id + ")");
 +      throw new InvalidIDException(ErrorCode.UNABLE_TO_PARSE_ID, "The id must start with " + URN + " (" + id + ")");
      }
      if (!tokens[1].equals(NAMESPACE))
      {
 -      throw new InvalidIDException(800, "The namespace of the id must be " + NAMESPACE + " (" + id + ")");
 +      throw new InvalidIDException(ErrorCode.UNABLE_TO_PARSE_ID, "The namespace of the id must be " + NAMESPACE + " (" + id + ")");
      }
      set(tokens[2], tokens[3], tokens[4]);
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java index a6b87dc..080d828 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java @@ -25,6 +25,7 @@ import java.util.List;  import at.gv.egiz.pdfas.exceptions.ErrorCode;
  import at.gv.egiz.pdfas.framework.input.PdfDataSource;
  import at.gv.egiz.pdfas.impl.input.ByteArrayPdfDataSourceImpl;
 +import at.gv.egiz.pdfas.impl.vfilter.helper.VerificationFilterBinaryHelper;
  import org.apache.log4j.Logger;
 @@ -149,7 +150,8 @@ public class BinaryVerificator_1_0_0 implements Verificator      ArrayParseResult kz_apr = (ArrayParseResult) getRequiredValueOfKey(pdf, egiz_dict, EGIZ_KZ_NAME);
      PdfASID kz = null;
 -    String kz_string = VerificationFilter.restoreKZ(pdf, kz_apr);
 +//    String kz_string = VerificationFilter.restoreKZ(pdf, kz_apr);
 +    String kz_string = VerificationFilterBinaryHelper.restoreKZ(pdf, kz_apr);
      kz = new PdfASID(kz_string);
      if (!kz_string.equals(getMyId().toString()))
      {
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/StringInfo.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/StringInfo.java index d2b28a4..08d53ee 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/StringInfo.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/StringInfo.java @@ -45,7 +45,7 @@ public class StringInfo implements Serializable    /**
     * The PDF document this range belongs to.
     */
 -  protected byte[] pdf = null;
 +  public byte[] pdf = null;
    /**
     * The start offset of the range.
 | 
