commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (NET-220) TFTPServer is not threadsafe
Date Wed, 02 Mar 2011 21:05:37 GMT

     [ https://issues.apache.org/jira/browse/NET-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sebb resolved NET-220.
----------------------

    Resolution: Won't Fix

The server is now a test class only, and the patches no longer apply cleanly.

> TFTPServer is not threadsafe
> ----------------------------
>
>                 Key: NET-220
>                 URL: https://issues.apache.org/jira/browse/NET-220
>             Project: Commons Net
>          Issue Type: Bug
>          Components: TFTP
>    Affects Versions: 2.0
>            Reporter: Sebb
>         Attachments: TFTPServer.patch, TFTPServerPathTest.patch
>
>
> The TFTPServer class is not threadsafe.
> There are several reasons for this:
> Ctors call private launch() method which creates a thread and start()s it.
> This publishes the instance before it has been fully constructed.
> Various instance fields are not thread-safe - e.g. serverReadDirectory_ is neither final
nor volatile, and accesses to it are not synchronized. 
> Although it is only written by the ctors, the lack of synch means that the field may
not be visible to other threads.
> As far as possible, instance fields should be made final - this guarantees that the field
will be visible to other threads.
> One of the shutdown_ variables is volatile (so is threadsafe) but the shutdown_ variable
in the nested TFTPTransfer class is not,  yet is accessed from multiple threads.
> The access to the variable serverException is not synch; should probably be volatile.
> Patch to follow.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message