NullPointerException when saving Document
-----------------------------------------
Key: PDFBOX-1125
URL: https://issues.apache.org/jira/browse/PDFBOX-1125
Project: PDFBox
Issue Type: Bug
Components: Writing
Affects Versions: 1.6.0
Reporter: Per Abich
I am trying to fill out this form(official Norwegian Government form):
http://www.nav.no/Om+NAV/Skjemaer/Arbeidsgiverskjemaer/L%C3%B8nn+og+personalskjemaer+for+din+bedrift+%28HR%29/Yrkesskade/_attachment/1073746888?_ts=1271f676c80
My code looks as follows:
public void setKode(InputStream inputStream, String value, OutputStream
output) throws IOException, COSVisitorException
{
PDDocument pdfDocument = PDDocument.load(inputStream);
if (LOGGER.isInfoEnabled())
{
LOGGER.info(pdfDocument.getCurrentAccessPermission().toString());
}
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField("beskrivelse");
if (field != null)
{
field.setValue(value);
} else
{
System.err.println("No field found with name:" + "beskrivelse");
}
pdfDocument.save(output);
}
While trying to fill in the field "beskrivelse" (or any other field in this
form) I get the following stacktrace:
java.lang.NullPointerException
at java.io.FilterInputStream.close(FilterInputStream.java:155)
at
org.apache.pdfbox.pdfwriter.COSWriter.doWriteSignature(COSWriter.java:688)
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1039)
at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:456)
at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1360)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1121)
at com.qmplus.PDFTest.App.setKode(App.java:36)
at com.qmplus.PDFTest.AppTest.test(AppTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
The funny thing is, the output is created and looks to my eyes fine...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira