[
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)