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

ASF GitHub Bot commented on BROOKLYN-192:
-----------------------------------------

GitHub user duncangrant opened a pull request:

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

    EntitySpec duplication should include children

    If the memberspec of a dynamiccluster had a child entityspec then it would 
not be possible to set or expand the cluster to more than 1 node. This is 
because when addentity is called the parent entity is set on the childspec.  
The dynamic cluster uses EntitySpec.create to duplicate the memberspec however 
this doesn't duplicate any children so the original and duplicate entityspecs 
share children.
    
    When using EntitySpec.create to duplicate an entityspec this change 
duplicates children rather than attaching original child specs.
    
    https://issues.apache.org/jira/browse/BROOKLYN-192

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

    $ git pull https://github.com/duncangrant/incubator-brooklyn 
fix/entityspec-duplication

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

    https://github.com/apache/incubator-brooklyn/pull/1051.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 #1051
    
----
commit 4c21e4ffff61033bf5a7875224c6ac5726fa358b
Author: Duncan Grant <[email protected]>
Date:   2015-11-19T16:38:12Z

    EntitySpec duplication includes children
    
    When using EntitySpec.create to duplicate an entityspec this change
    duplicates children rather than attaching original child specs.

----


> Cannot create DynamicCluster of [entities with multiple children] of size 
> greater than one
> ------------------------------------------------------------------------------------------
>
>                 Key: BROOKLYN-192
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-192
>             Project: Brooklyn
>          Issue Type: Bug
>    Affects Versions: 0.9.0
>            Reporter: Mike Zaccardo
>
> When a `DynamicCluster` of entities, each of which have multiple 
> `brooklyn.children` entities, is created with an initial size greater than 
> one:
> {code:java}
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Error
> invoking start at DynamicClusterImpl{id=vxtguIix}:
> java.lang.IllegalStateException: On start of cluster
> DynamicClusterImpl{id=vxtguIix}, failed to get to initial size of 2; size
> is 1: Spec EntitySpec{type=interface
> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess} has parent
> EmptySoftwareProcessImpl{id=hN8uSfbM} defined, but it is defined as a child
> of EmptySoftwareProcessImpl{id=ft1Egn5i}
> {code}
> The exception is thrown here: 
> https://github.com/apache/incubator-brooklyn/blob/master/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java#L210
> It is thrown because the `brooklyn.children` specs have their parent values 
> erroneously assigned to an entity that is not actually their immediate parent.



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

Reply via email to