You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/01/21 14:32:47 UTC

[brooklyn-server] 03/12: make copies of transformed maps to assist with serialization

This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 0a587926ddceddfe1beca740f1ccf1be5f77df76
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Wed Jan 19 16:49:59 2022 +0000

    make copies of transformed maps to assist with serialization
    
    (otherwise they are lazily transformed and not on serialization, causing lambdas to try to be serialized)
---
 .../camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
index eacb289..a673d70 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
@@ -535,7 +535,7 @@ public class BrooklynComponentTemplateResolver {
         @Override
         public Object apply(Object input) {
             if (input instanceof Map)
-                return transformSpecialFlags((Map<?, ?>)input);
+                return MutableMap.copyOf(transformSpecialFlags((Map<?, ?>)input));
             else if (input instanceof Set<?>)
                 return MutableSet.copyOf(transformSpecialFlags((Iterable<?>)input));
             else if (input instanceof List<?>)
@@ -574,7 +574,7 @@ public class BrooklynComponentTemplateResolver {
                 // TODO: This should called from BrooklynAssemblyTemplateInstantiator.configureEntityConfig
                 // And have transformSpecialFlags(Object flag, ManagementContext mgmt) drill into the Object flag if it's a map or iterable?
                 @SuppressWarnings("unchecked")
-                Map<String, Object> resolvedConfig = (Map<String, Object>)transformSpecialFlags(flag.getSpecConfiguration());
+                Map<String, Object> resolvedConfig = (Map<String, Object>)apply(flag.getSpecConfiguration());
                 EntitySpec<?> entitySpec;
                 try {
                     // first parse as a CAMP entity