You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Alan Thomas <ja...@verizon.net> on 2010/04/11 04:23:45 UTC
Problem Moving to version 1.1.0
I have some code that worked fine in PDF Box 0.8.0-incubating version, but now it throws an exception when using version 1.1.0:
try
{
System.out.println("--- Processing input file: " + InDirName
+ "\\" + InFile.getName());
InputDoc = PDDocument.load(InFile);
. . .
}
catch (Exception e)
{
e.printStackTrace();
}
It fails on the line: "InputDoc = PDDocument.load(InFile);", giving the following exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:58)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:846)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:814)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:785)
at autoinsertpdf.AutoInsertPDF.InsertDrawings(AutoInsertPDF.java:212)
at autoinsertpdf.AutoInsertPDF.main(AutoInsertPDF.java:60)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 6 more
Any idea why?
Thanks in advance, Alan
Re: Problem Moving to version 1.1.0
Posted by Alan Thomas <ja...@verizon.net>.
Yes, that overcame that exception. I was confused, as I included this
library for Ant,
but not for PDFBox. I guess 1.1.0 uses common logging now.
However, now I get another exception, having to do with closing a PDF
document,
on this code:
PDDocument OutputDoc;
. . . . .
// Save and close the output file
if (OutputDoc != null)
{
OutputDoc.save(OutPath); <--- Exception occurs here
OutputDoc.close();
}
The exception is:
java.lang.Throwable: Warning: You did not close the PDF Document
at org.apache.pdfbox.cos.COSDocument.finalize(COSDocument.java:404)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
org.apache.pdfbox.exceptions.COSVisitorException: The handle is invalid
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:938)
at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:201)
at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:206)
at
org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:430)
at
org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:361)
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:767)
at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:372)
at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1082)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:899)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:880)
at
autoinsertpdf.AutoInsertPDF.InsertDrawings(AutoInsertPDF.java:294)
at autoinsertpdf.AutoInsertPDF.main(AutoInsertPDF.java:60)
With the incubating version of PDFBox, I my code was a little different
(wrong I think), but that order does not work either in 1.1.0:
if (OutputDoc != null)
{
OutputDoc.save(OutPath); <--- Exception occurs here
}
OutputDoc.close();
Thanks, Alan
--------------------------------------------------
From: "Andreas Lehmkuehler" <an...@lehmi.de>
Sent: Sunday, April 11, 2010 8:29 AM
To: <us...@pdfbox.apache.org>
Subject: Re: Problem Moving to version 1.1.0
> Hi,
>
> Alan Thomas schrieb:
>> I have some code that worked fine in PDF Box 0.8.0-incubating version,
>> but now it throws an exception when using version 1.1.0:
>>
>> try
>> {
>> System.out.println("--- Processing input file: " +
>> InDirName
>> + "\\" + InFile.getName());
>> InputDoc = PDDocument.load(InFile);
>> . . .
>>
>> }
>> catch (Exception e)
>> {
>> e.printStackTrace();
>> }
>>
>> It fails on the line: "InputDoc = PDDocument.load(InFile);", giving the
>> following exception:
>>
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> org/apache/commons/logging/LogFactory
>> at
>> org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:58)
>> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:846)
>> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:814)
>> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:785)
>> at
>> autoinsertpdf.AutoInsertPDF.InsertDrawings(AutoInsertPDF.java:212)
>> at autoinsertpdf.AutoInsertPDF.main(AutoInsertPDF.java:60)
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.commons.logging.LogFactory
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>> ... 6 more
>>
>> Any idea why?
> Is commons-logging-1.1.1.jar part of your classpath?
>
> BR
> Andreas Lehmkühler
Re: Problem Moving to version 1.1.0
Posted by Andreas Lehmkuehler <an...@lehmi.de>.
Hi,
Alan Thomas schrieb:
> I have some code that worked fine in PDF Box 0.8.0-incubating version, but now it throws an exception when using version 1.1.0:
>
> try
> {
> System.out.println("--- Processing input file: " + InDirName
> + "\\" + InFile.getName());
> InputDoc = PDDocument.load(InFile);
>
> . . .
>
> }
> catch (Exception e)
> {
> e.printStackTrace();
> }
>
> It fails on the line: "InputDoc = PDDocument.load(InFile);", giving the following exception:
>
> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
> at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:58)
> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:846)
> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:814)
> at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:785)
> at autoinsertpdf.AutoInsertPDF.InsertDrawings(AutoInsertPDF.java:212)
> at autoinsertpdf.AutoInsertPDF.main(AutoInsertPDF.java:60)
> Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> ... 6 more
>
> Any idea why?
Is commons-logging-1.1.1.jar part of your classpath?
BR
Andreas Lehmkühler