You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2015/12/13 06:55:51 UTC

[jira] [Commented] (RIVER-431) Java Memory Model Compliance

    [ https://issues.apache.org/jira/browse/RIVER-431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15054808#comment-15054808 ] 

Hudson commented on RIVER-431:
------------------------------

SUCCESS: Integrated in River-trunk-jdk7 #168 (See [https://builds.apache.org/job/River-trunk-jdk7/168/])
RIVER-431 Findbugs static analysis revealed some synchronization bugs remained, these have been fixed along with some other bugs.  Note that TaskManager has not been fixed as it is deprecated.  Note, not all bugs identified by Findbugs have been fixed, bugs that remain are relatively minor and will be fixed in a following release. (peter_firmstone: [http://svn.apache.org/viewvc/?view=rev&rev=1719763])
* src/net/jini/discovery/AbstractLookupDiscovery.java
* src/net/jini/discovery/AbstractLookupDiscoveryManager.java
* src/net/jini/discovery/AbstractLookupLocatorDiscovery.java
* src/net/jini/discovery/Constants.java
* src/net/jini/discovery/DiscoveryEvent.java
* src/net/jini/discovery/LookupDiscovery.java
* src/net/jini/discovery/LookupDiscoveryManager.java
* src/net/jini/discovery/LookupLocatorDiscovery.java
* src/net/jini/export/ServerContext.java
* src/net/jini/lease/LeaseRenewalManager.java
* src/net/jini/lookup/JoinManager.java
* src/org/apache/river/jeri/internal/http/Header.java
* src/org/apache/river/mahalo/log/MultiLogManager.java
* src/org/apache/river/mahalo/log/SimpleLogFile.java
* src/org/apache/river/norm/LeaseSet.java
* src/org/apache/river/reggie/RegistrarImpl.java
* src/org/apache/river/start/ProxyVerifier.java


> Java Memory Model Compliance
> ----------------------------
>
>                 Key: RIVER-431
>                 URL: https://issues.apache.org/jira/browse/RIVER-431
>             Project: River
>          Issue Type: Bug
>    Affects Versions: River_2.1.1, River_2.1.2, River_2.2.0, River_2.2.1, River_2.2.2
>         Environment: JVM
>            Reporter: Peter Firmstone
>            Assignee: Peter Firmstone
>             Fix For: River_3.0.0
>
>         Attachments: RegistrarImpl.patch
>
>
> Much of the Jini codebase was written prior to the publication of the current JMM, for this reason, there are a number of issues with the existing code base that need to be changed to bring River into compliance with the JMM.
> Typical issues encountered:
> 1.Letting "this" escape during construction - example exporting or starting threads, where those threads can see internal field references before construction of that object is complete.
> 2. Inadequate synchronization or lack of synchronization on mutable fields.
> 3. Sharing of internal unsynchronized state.
> 4. Race conditions where unsynchronized or non final or non volatile fields are updated by other threads.
> 5. Deserializing an object in one thread and sharing the deserialized mutable but unmodified object with another thread without first publishing it safely to a volatile or final field, so the second thread can sometimes see the default value of fields in the mutable object.
> Affects all presently released versions, planned to be fixed in River 3.0



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)