Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 5.2.0
-
Fix Version/s: 5.2.0
-
Component/s: tapestry-core
-
Labels:None
Description
VirtualAssetStreamer in 5.1 and StackAssetRequestHandler in 5.2 are both affected by this bug. The scenario is many concurrent threads but slow connections; one thread starts to write buffered content (buffered inside a ByteArrayOutputStream) to a client; BAOS.writeTo(OutputStream) is synchronized: while that is occuring, no other thread can write that buffered content to any client.
Solution is to not use ByteArrayOutputStream is a content buffer; instead create a class that tracks the content inside a byte array.