Re: NPE in verifyPdfText

Lisa Crispin <[email protected]>
Newsgroups gmane.comp.web.canoo.webtest
Message-ID <[email protected]>
Thanks! That's kind of an old post though. Acrobat 9 seems to have been out
for quite awhile. You think that PDFBox still doesn't work with it? I wonder
how to go back to an old version of Acrobat.
-- Lisa

2010/12/2 Dierk König <[email protected]>

> Hi Lisa,
>
> always good to hear from you ;-)
>
> The issue appears to be connected to the Acrobat version that created the
> PDF, see
> http://markmail.org/message/64ls3daphdh3pxzo
>
> cheers
> Dierk
>
> Am 02.12.2010 um 22:09 schrieb Lisa Crispin:
>
> We got a new version of a pdf that we've had for years and years, a page
> was added to it is all. Now all our tests  that verify this document are
> failing with an NPE. The traceback is below. There must be something wrong
> with the PDF, but we can't see it. Anyone have any suggestions how we can
> debug this? I can see the PDF and the actual page in question in the test
> result output, and it has the right text on it and everything.
>
> The step that's failing is:
>   <pdfVerifyText description="verify first page content"
>     startPage="1"
>     endPage="1"
>     text="SUMMARY PLAN DESCRIPTION"/>
>
> Here is the traceback:
> /var/hudson/workspace/WebTest-NonTradeTests-Build/trunk/src/web_test/modules/verifySPD40.xml:8:
> Unexpected exception caught: java.lang.NullPointerException
>     at com.canoo.webtest.steps.StepUtil.handleException(StepUtil.java:120)
>     at com.canoo.webtest.steps.Step.handleException(Step.java:387)
>     at com.canoo.webtest.steps.Step.execute(Step.java:118)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at
> com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
>     at
> com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
>     at com.canoo.webtest.steps.Step.execute(Step.java:103)
>     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.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at com.canoo.webtest.ant.WebtestTask.executeSteps(WebtestTask.java:236)
>     at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:208)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at
> org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>     at
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.Main.runBuild(Main.java:698)
>     at org.apache.tools.ant.Main.startAnt(Main.java:199)
>     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
>     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> Caused by: java.lang.NullPointerException
>     at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:194)
>     at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:182)
>     at
> org.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:226)
>     at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
>     at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)
>     at
> com.canoo.webtest.plugins.pdftest.htmlunit.pdfbox.PdfBoxPDFPage.getTextInternal(PdfBoxPDFPage.java:204)
>     at
> com.canoo.webtest.plugins.pdftest.htmlunit.pdfbox.PdfBoxPDFPage.getText(PdfBoxPDFPage.java:196)
>     at
> com.canoo.webtest.plugins.pdftest.PdfVerifyTextStep.verifyPdf(PdfVerifyTextStep.java:87)
>     at
> com.canoo.webtest.plugins.pdftest.AbstractVerifyPdfStep.doExecute(AbstractVerifyPdfStep.java:22)
>     at com.canoo.webtest.steps.Step.execute(Step.java:103)
>     ... 70 more
> --- Nested Exception ---
> java.lang.NullPointerException
>     at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:194)
>     at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:182)
>     at
> org.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:226)
>     at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
>     at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)
>     at
> com.canoo.webtest.plugins.pdftest.htmlunit.pdfbox.PdfBoxPDFPage.getTextInternal(PdfBoxPDFPage.java:204)
>     at
> com.canoo.webtest.plugins.pdftest.htmlunit.pdfbox.PdfBoxPDFPage.getText(PdfBoxPDFPage.java:196)
>     at
> com.canoo.webtest.plugins.pdftest.PdfVerifyTextStep.verifyPdf(PdfVerifyTextStep.java:87)
>     at
> com.canoo.webtest.plugins.pdftest.AbstractVerifyPdfStep.doExecute(AbstractVerifyPdfStep.java:22)
>     at com.canoo.webtest.steps.Step.execute(Step.java:103)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at
> com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
>     at
> com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
>     at com.canoo.webtest.steps.Step.execute(Step.java:103)
>     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.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at com.canoo.webtest.ant.WebtestTask.executeSteps(WebtestTask.java:236)
>     at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:208)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
>     at
> org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
>     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>     at org.apache.tools.ant.Task.perform(Task.java:348)
>     at org.apache.tools.ant.Target.execute(Target.java:357)
>     at org.apache.tools.ant.Target.performTasks(Target.java:385)
>     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>     at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>     at
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>     at org.apache.tools.ant.Main.runBuild(Main.java:698)
>     at org.apache.tools.ant.Main.startAnt(Main.java:199)
>     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
>     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
>
> --
> Lisa Crispin
> Co-author with Janet Gregory, _Agile Testing: A Practical Guide for Testers
> and Agile Teams_ (Addison-Wesley 2009)
> Contributor to _Beautiful Testing_ (O'Reilly 2009)
> http://lisacrispin.com
> @lisacrispin on Twitter
>
>
>


-- 
Lisa Crispin
Co-author with Janet Gregory, _Agile Testing: A Practical Guide for Testers
and Agile Teams_ (Addison-Wesley 2009)
Contributor to _Beautiful Testing_ (O'Reilly 2009)
http://lisacrispin.com
@lisacrispin on Twitter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.