Package org.htmlunit
Class NicelyResynchronizingAjaxController
- java.lang.Object
-
- org.htmlunit.AjaxController
-
- org.htmlunit.NicelyResynchronizingAjaxController
-
- All Implemented Interfaces:
java.io.Serializable
public class NicelyResynchronizingAjaxController extends AjaxController
ThisAjaxControllerresynchronizes calls calling from the main thread. The idea is that asynchronous AJAX calls performed directly in response to a user action (therefore in the "main" thread and not in the thread of a background task) are directly useful for the user. To easily have a testable state, these calls are performed synchronously.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static org.apache.commons.logging.LogLOGprivate java.lang.ref.WeakReference<java.lang.Thread>originatedThread_
-
Constructor Summary
Constructors Constructor Description NicelyResynchronizingAjaxController()Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidinit()Initializes this instance.(package private) booleanisInOriginalThread()Indicates if the currently executing thread is the one in which this instance has been created.booleanprocessSynchron(HtmlPage page, WebRequest settings, boolean async)Resynchronizes calls performed from the thread where this instance has been created.private voidreadObject(java.io.ObjectInputStream stream)Custom deserialization logic.
-
-
-
Method Detail
-
init
private void init()
Initializes this instance.
-
processSynchron
public boolean processSynchron(HtmlPage page, WebRequest settings, boolean async)
Resynchronizes calls performed from the thread where this instance has been created.Gets notified of an AJAX call to determine how it should be processed.
- Overrides:
processSynchronin classAjaxController- Parameters:
page- the page the request comes fromsettings- the request that should be performedasync- indicates if the request should originally be asynchronous- Returns:
- if the call should be synchronous or not; here just like the original call
-
isInOriginalThread
boolean isInOriginalThread()
Indicates if the currently executing thread is the one in which this instance has been created.- Returns:
trueif it's the same thread
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundExceptionCustom deserialization logic.- Parameters:
stream- the stream from which to read the object- Throws:
java.io.IOException- if an IO error occursjava.lang.ClassNotFoundException- if a class cannot be found
-
-