htmlunit-2 / .9バージョンを使用していますが、現在のHTMLページのコンテンツを取得して、将来の参照用に一時ファイルに保存しようとすると、を呼び出すとnullポインター例外が発生しますcurrentPage.asXml()
。
ポインタやヘルプは大歓迎です。
スタックトレースは次のとおりです。
java.lang.NullPointerException
at **com.gargoylesoftware.htmlunit.SgmlPage.asXml(SgmlPage.java:206)**
at com.yahoo.vis.ddbuilder.validator.DDBuilderValidator.validateTemplate_1(DDBuilderValidator.java:308)
at com.yahoo.vis.ddbuilder.validator.DDBuilderValidator.validate(DDBuilderValidator.java:72)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.yahoo.robot.components.interfaces.Executable.run(Executable.java:73)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
以下は、NULLポインターの原因となっているコードスニペットです。私はこのテストを約100のテストケースで実行していますが、100のうち20〜30のケースでランダムに失敗します
private IValidationResponse validateTemplate_2(String url, Properties verifyProps, HtmlPage currentPage) throws FailingHttpStatusCodeException, MalformedURLException, IOException
{
IValidationResponse validationResponse = new DefaultValidationResponse();
String query = verifyProps.getProperty(IConstants.QUERY);
System.err.println("Verifying Query ::- "+query);
validationResponse.setQuery(query);
validationResponse.setActualResponseAsBuffer(new StringBuffer(currentPage.asXml()));
...
}