diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlClusterImpl.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlClusterImpl.java
index cbc0272..e0314ab 100644
--- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlClusterImpl.java
+++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlClusterImpl.java
@@ -134,11 +134,11 @@
                 .build());
     }
 
-    private void propagateMasterAttribute(AttributeSensor<?> att) {
+    private <T> void propagateMasterAttribute(AttributeSensor<T> att) {
         enrichers().add(Enrichers.builder()
                 .aggregating(att)
                 .publishing(att)
-                .computing(IfFunctions.ifPredicate(CollectionFunctionals.notEmpty())
+                .computing(IfFunctions.<Collection<T>>ifPredicate(CollectionFunctionals.notEmpty())
                         .apply(CollectionFunctionals.firstElement())
                         .defaultValue(null))
                 .entityFilter(MySqlClusterUtils.IS_MASTER)
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
index 79003c2..5322c22 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
@@ -336,7 +336,8 @@
     protected Entity replaceMember(Entity member, Location memberLoc, Map<?, ?> extraFlags) {
         Set<BigInteger> oldTokens = ((CassandraNode) member).getTokens();
         Set<BigInteger> newTokens = (oldTokens != null && oldTokens.size() > 0) ? getTokenGenerator().getTokensForReplacementNode(oldTokens) : null;
-        return super.replaceMember(member, memberLoc,  MutableMap.copyOf(extraFlags).add(CassandraNode.TOKENS, newTokens));
+        MutableMap<Object, Object> allFlags = MutableMap.<Object, Object>copyOf(extraFlags).add(CassandraNode.TOKENS, newTokens);
+        return super.replaceMember(member, memberLoc, allFlags);
     }
 
     @Override
