GitHub user aledsage opened a pull request:

    https://github.com/apache/incubator-brooklyn/pull/1110

    Fix concurrent use of entity.setAttribute()

    Previously we were using a vanilla LinkedHashMap for storing attributes
    (ever since the FEATURE_USE_BROOKLYN_LIVE_OBJECTS_DATAGRID_STORAGE
    was disabled by default!)
    
    Now uses synchronized set / synchronized map (rather than `ConcurrentMap`, 
as need to accept null values), with underlying `LinkedHashSet` to preserve 
order.
    
    Adds `EntityConcurrencyTest` for concurrently:
    - setting attributes (previously failed fairly often)
    - setting config
    - adding tags
    - adding groups (previously failed sometimes)
    - adding children
    - adding locations
    - adding policies
    - adding enrichers
    - adding feeds

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/aledsage/incubator-brooklyn 
fix/concurrent-setAttribute

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-brooklyn/pull/1110.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1110
    
----
commit b9f8dc1fc1ea9527705bc8ce1b54e66bfaaa9815
Author: Aled Sage <aled.s...@gmail.com>
Date:   2015-12-15T21:41:29Z

    Fix concurrent use of entity.setAttribute()
    
    Previously we were using a vanilla LinkedHashMap for storing attributes
    (ever since the FEATURE_USE_BROOKLYN_LIVE_OBJECTS_DATAGRID_STORAGE
    was disabled by default!)
    
    Now uses ConcurrentMap, or for some other things a synchronised set
    so that we preserve order with the underlying LinkedHashSet.
    
    Adds EntityConcurrencyTest for concurrently:
    - setting attributes
    - setting config
    - adding tags
    - adding groups
    - adding children
    - adding locations
    - adding policies
    - adding enrichers
    - adding feeds

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to