i agree it's not a clean solution, but that's exactly what i was planning on
doing.  i'm working through the maven setup today and hope to have my env
setup, compiled, and tested soon enough.

here is what i was planning on doing in HtmlUnitTestingEngineImpl:


   - Add these:
      - private RefreshHandler refreshHandler = null;
      - public void setRefreshHandler(RefreshHandler refreshHandler)
   - Modify initWebClient()
      - if (this.refreshHandler == null) {
             wc.setRefreshHandler(new ImmediateRefreshHandler());
          } else {
              wc.setRefreshHandler(this.refreshHandler);
          }

i'll also be putting the updated jar in my env, to see if this fixes the
problem.

-Jason-



On Thu, Sep 2, 2010 at 1:54 AM, Julien HENRY <henr...@yahoo.fr> wrote:

> This is not a clean solution but an easy fix is to change visibility or add
> some methods in HtmlUnitTestingEngineImpl, and cast the use:
> ((HtmlUnitTestingEngineImpl) getTestingEngine()).xxxxx (where xxx could be
> setDefaultRefreshHandler) before calling beginAt().
>
> Regards,
>
> Julien
>
>
> *De :* Jason McSwain <jasonwmcsw...@gmail.com>
> *À :* Usage problems for JWebUnit <jwebunit-users@lists.sourceforge.net>
> *Envoyé le :* Mer 1 septembre 2010, 18h 34min 35s
> *Objet :* Re: [JWebUnit-users] Re : Attempted to refresh a page using an
> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
> use WaitingRefreshHandler or ThreadedRefreshHandler instead
>
> Thank you for the quick response.  I would be interested in contributing.
> i'm looking through the contribution steps 
> here<http://jwebunit.sourceforge.net/building-maven.html>.
> I would assume that it would be an easy fix.  Once i have an env setup, i'll
> put in a fix, and let you review it.
>
> Is there any particular way that you would prefer to have this done?
>
> -Jason-
>
>
>
> On Wed, Sep 1, 2010 at 7:26 AM, Julien HENRY <henr...@yahoo.fr> wrote:
>
>> Hi Jason,
>>
>> Currently there is no way to change the refresh handler. There is a long
>> standing issue about accessing HtmlUnit internals from JWebUnit API. At
>> first it was a choice to prevent user to call HtmlUnit specific API and
>> prevent easy switch to another testing engine but now we admit there are
>> cases where it should be possible.
>>
>> We are waiting for contribution in this area.
>>
>> Regards,
>>
>> Julien
>>
>>
>> *De :* Jason McSwain <jasonwmcsw...@gmail.com>
>>
>> *À :* jwebunit-users@lists.sourceforge.net
>> *Envoyé le :* Mer 1 septembre 2010, 1h 03min 13s
>> *Objet :* [JWebUnit-users] Attempted to refresh a page using an
>> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
>> use WaitingRefreshHandler or ThreadedRefreshHandler instead
>>
>> Hello,
>>
>> I searched both the Development and User forums, but didn't find an
>> answer.  if this has already been answered please point me to the right
>> entry in the archives.  Thank you in advance for any help you can provide.
>>
>> i'm new to the list, but have been using JWebUnit for the last 6 months.
>> it works great on one of the products i test, so we decided to use it on
>> another product, too.  This new product has a page that refreshes every 30
>> seconds, and when i go to setup my WebTester, i get an exception. about
>> RefreshHandlers.  We are using the HtmlUnit plugin, not selenium.  The
>> Question i have is how do i change the Refresh handler?  This error happens
>> when i call WebTester.beginAt("/"), and that method initializes the
>> WebClient inside a private method, and sets the refreshHandler to the
>> ImmediateRefreshHandler.  i'd like to use another type.
>>
>>
>> Error:
>> java.lang.RuntimeException: Unexpected Exception during init.
>>     at TestWebTester.init(TestWebTester.java:53)
>>     at TestWebTester.<init>(TestWebTester.java:37)
>>     at TestWebTester.main(TestWebTester.java:60)
>> Caused by: java.lang.RuntimeException: Refresh to 
>> http://10.10.10.31:90/(30s) aborted by HtmlUnit: Attempted to refresh a page 
>> using an
>> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
>> use WaitingRefreshHandler or ThreadedRefreshHandler instead.
>>     at
>> com.gargoylesoftware.htmlunit.ImmediateRefreshHandler.handleRefresh(ImmediateRefreshHandler.java:58)
>>     at
>> com.gargoylesoftware.htmlunit.html.HtmlPage.executeRefreshIfNeeded(HtmlPage.java:1279)
>>     at
>> com.gargoylesoftware.htmlunit.html.HtmlPage.initialize(HtmlPage.java:218)
>>     at
>> com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:427)
>>     at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:303)
>>     at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:360)
>>     at
>> net.sourceforge.jwebunit.htmlunit.HtmlUnitTestingEngineImpl.gotoPage(HtmlUnitTestingEngineImpl.java:248)
>>     at
>> net.sourceforge.jwebunit.htmlunit.HtmlUnitTestingEngineImpl.beginAt(HtmlUnitTestingEngineImpl.java:207)
>>     at
>> net.sourceforge.jwebunit.junit.WebTester.beginAt(WebTester.java:228)
>>     at TestWebTester.init(TestWebTester.java:48)
>>
>>
>> Here is an example code snippet that uncovers the issue:
>>
>>
>> ****************************************************************************************
>> public class TestWebTester extends WebTester {
>>     private String baseUrl;
>>
>>     public TestWebTester() {
>>         super();
>>         init();
>>     }
>>
>>     public TestWebTester(String baseUrl) {
>>         super();
>>         this.baseUrl = baseUrl;
>>         init();
>>     }
>>
>>     public void init() {
>>         System.out.println("TestWebTester.init()");
>>         // set base url
>>         try {
>>
>>             setBaseUrl(this.baseUrl);
>>             // first part to load
>>             System.out.println("  -> set begin at  = '/'");
>>             beginAt("/");
>>
>>         } catch (TestingEngineResponseException e) {
>>             throw new RuntimeException("Unexpected
>> TestingEngineResponseException during init.", e);
>>         } catch (Exception e) {
>>             throw new RuntimeException("Unexpected Exception during
>> init.", e);
>>         }
>>     }
>>
>>     public static void main(String[] args) {
>>         System.out.println("----- Begin -----");
>>         try {
>>             TestWebTester twt = new TestWebTester("http://10.10.10.31:90/
>> ");
>>         } catch (Throwable t) {
>>             System.out.println("*** ERROR ***");
>>             t.printStackTrace();
>>             System.out.println();
>>             System.out.println("*************");
>>         }
>>
>>         System.out.println("-----  end  -----");
>>     }
>> }
>>
>> ****************************************************************************************
>>
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> This SF.net Dev2Dev email is sponsored by:
>>
>> Show off your parallel programming skills.
>> Enter the Intel(R) Threading Challenge 2010.
>> http://p.sf.net/sfu/intel-thread-sfd
>> _______________________________________________
>> JWebUnit-users mailing list
>> JWebUnit-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jwebunit-users
>>
>>
>
>
>
> ------------------------------------------------------------------------------
> This SF.net Dev2Dev email is sponsored by:
>
> Show off your parallel programming skills.
> Enter the Intel(R) Threading Challenge 2010.
> http://p.sf.net/sfu/intel-thread-sfd
> _______________________________________________
> JWebUnit-users mailing list
> JWebUnit-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jwebunit-users
>
>
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
JWebUnit-users mailing list
JWebUnit-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jwebunit-users

Reply via email to