Re: NPE in verifyPdfText

Dierk König <[email protected]>
Newsgroups gmane.comp.web.canoo.webtest
Message-ID <[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
>
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.