angler-fishThe Vulnerability History Project

Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49884

      This required a major re-factoring of the async implementation. In summary:
- Moved state management to the Coyote Processor
- Added a SocketWrapper to the APR socket
- Added syncs to ensure only one async state change at a time
- Added syncs to ensure only one thread changing a socket's state at a time

A number of new bugs were also uncovered and fixed by this re-factoring:
- delay processing complete() and dispatch() until request where startAsync() is called finished processing
- onAsyncStart listener event

Currently the test case for bug 49884 passes with the security manager enabled using "ab -n 5000 -c 150 -k ..." (it broke with "ab -n 50 -c 10 ..." previously) 

The unit tests pass for all three HTTP connectors.

The AJP connectors have only been modified to ensure the code compiles.

The following work remains:
- Testing all connectors (HTTP and AJP) with TCK + security manager and fixing whatever is broken
- Furthe
    
commit 587b1a807129c2ab41623358281aa19ff2ff9950
+53 -16
+6 -15
+216 -125
+6 -14
+3 -46
+15 -20
+9 -10
+7 -289
+1 -5
+78 -61
+22 -44
+29 -15
+13 -42
+26 -9
+3 -23
-2
+1 -1
+49 -167
+55 -58
+71 -86
+7
-1
+12 -358
-5
expand_less