Hi Peter,
On 04.07.2010 00:48, p...@apache.org wrote:
Author: pero
Date: Sat Jul 3 22:48:16 2010
New Revision: 960283
URL: http://svn.apache.org/viewvc?rev=960283&view=rev
Log:
Fix Bug 49528 - HttpServletRequest.isAsyncStarted() returns false when a
Runnable is started
Add isDebugEnabled statements.
Todo: Why we doesn't start directly a container thread with
asyncContext.start()?
Currently we start user runnable as an internal forward.
Added:
tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java
(with props)
Modified:
tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=960283&r1=960282&r2=960283&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Sat Jul 3
22:48:16 2010
@@ -253,7 +253,7 @@ public class AsyncContextImpl implements
}
public boolean isStarted() {
- return (state.get() == AsyncState.STARTED || state.get() ==
AsyncState.DISPATCHING);
+ return (state.get() == AsyncState.STARTED || state.get() ==
AsyncState.DISPATCHING || state.get() == AsyncState.DISPATCHED);
}
public void setStarted(Context context) {
@@ -292,7 +292,8 @@ public class AsyncContextImpl implements
public void doInternalDispatch() throws ServletException, IOException {
if (this.state.compareAndSet(AsyncState.TIMING_OUT,
AsyncState.COMPLETING)) {
- log.debug("TIMING OUT!");
+ if( log.isDebugEnabled())
+ log.debug("TIMING OUT!");
Style nitpicks:
- indentation wrong, maybe tabs involved
- spacing around "if"
boolean listenerInvoked = false;
for (AsyncListenerWrapper listener : listeners) {
listener.fireOnTimeout(event);
@@ -303,15 +304,18 @@ public class AsyncContextImpl implements
}
doInternalComplete(true);
} else if (this.state.compareAndSet(AsyncState.ERROR_DISPATCHING,
AsyncState.COMPLETING)) {
- log.debug("ON ERROR!");
+ if( log.isDebugEnabled())
+ log.debug("ON ERROR!");
- spacing around "if"
boolean listenerInvoked = false;
for (AsyncListenerWrapper listener : listeners) {
try {
listener.fireOnError(event);
}catch (IllegalStateException x) {
- log.debug("Listener invoked invalid state.",x);
+ if( log.isDebugEnabled())
+ log.debug("Listener invoked invalid state.",x);
- spacing around "if"
}catch (Exception x) {
- log.debug("Exception during onError.",x);
+ if(log.isDebugEnabled())
+ log.debug("Exception during onError.",x);
- spacing around "if"
}
listenerInvoked = true;
}
Added: tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java?rev=960283&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java (added)
+++ tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java Sat
Jul 3 22:48:16 2010
+ private BUG49528Servlet createTestApp(Tomcat tomcat) {
+ // Must have a real docBase - just use temp
+ File docBase = new File(System.getProperty("java.io.tmpdir"));
+
+ // Create the folder that will trigger the redirect
+ File foo = new File(docBase, "async");
+ if (!foo.exists()&& !foo.mkdirs()) {
- spacing around "&&"
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=960283&r1=960282&r2=960283&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat Jul 3 22:48:16 2010
@@ -38,6 +38,10 @@
<subsection name="Catalina">
<changelog>
<fix>
+<bug>49528</bug>: HttpServletRequest.isAsyncStarted() now returns true when a
Runnable is started!
+ Reported by Pieter Libin (pero)
+</fix>
+<fix>
- indentation
- no need for exclamation mark
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org