[
https://issues.apache.org/jira/browse/DERBY-5328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13210487#comment-13210487
]
Rick Hillegas commented on DERBY-5328:
--------------------------------------
Hi Kathey,
I believe there is more work to be done on this issue. Thanks.
> The private fields of the NetServlet can be changed by multiple threads,
> giving rise to race conditions and corruptions.
> ------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-5328
> URL: https://issues.apache.org/jira/browse/DERBY-5328
> Project: Derby
> Issue Type: Bug
> Components: Network Server
> Affects Versions: 10.9.0.0
> Reporter: Rick Hillegas
> Attachments: derby-5328-01-aa-simpleFields.diff
>
>
> At the beginning of the NetServlet class, there are a number of private
> fields. These fields can be inspected and changed by any thread running
> inside NetServlet.doGet(). Due to the way that app servers dispatch servlet
> requests, this means that multiple threads can be operating inside doGet() at
> the same time, clobbering one another's work. The weirdest instance of this
> is the shared PrintWriter (called "out") which is used to produce the
> response web page sent back by the servlet. Multiple threads all writing to
> the same PrintWriter will create a very bizarre response page. The following
> improvements should be made:
> 1) The "server" field should be set by a synchronized method.
> 2) Every run through doGet() should create its own PrintWriter which is
> passed to other methods. The instance-wide "out" field should be removed.
> 3) Various other fields should be re-coded using the Atomic classes
> introduced by Java 5. These fields include "logStatus" and "traceStatus".
> This solution can be implemented if the community votes to approve the
> sunsetting of JVM 1.4 (currently at the polls).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira