killbill-memoizeit

tenant: Fix DefaultTenantDao#updateTenantLastKeyValue

7/22/2016 7:42:16 PM

Details

diff --git a/tenant/src/main/java/org/killbill/billing/tenant/dao/DefaultTenantDao.java b/tenant/src/main/java/org/killbill/billing/tenant/dao/DefaultTenantDao.java
index dea38c0..0b6ea7d 100644
--- a/tenant/src/main/java/org/killbill/billing/tenant/dao/DefaultTenantDao.java
+++ b/tenant/src/main/java/org/killbill/billing/tenant/dao/DefaultTenantDao.java
@@ -163,12 +163,16 @@ public class DefaultTenantDao extends EntityDaoBase<TenantModelDao, Tenant, Tena
 
                 // Retrieve all values for key ordered with recordId (last at the end)
                 final List<TenantKVModelDao> tenantKV = tenantKVSqlDao.getTenantValueForKey(key, context);
+                final String id;
                 if (!tenantKV.isEmpty()) {
-                    final String id = tenantKV.get(tenantKV.size() - 1).getId().toString();
+                    id = tenantKV.get(tenantKV.size() - 1).getId().toString();
                     tenantKVSqlDao.updateTenantValueKey(id, value, context);
-                    final TenantKVModelDao rehydrated = tenantKVSqlDao.getById(id, context);
-                    broadcastConfigurationChangeFromTransaction(rehydrated.getRecordId(), key, entitySqlDaoWrapperFactory, context);
+                } else {
+                    id = tenantKVModelDao.getId().toString();
+                    tenantKVSqlDao.create(tenantKVModelDao, context);
                 }
+                final TenantKVModelDao rehydrated = tenantKVSqlDao.getById(id, context);
+                broadcastConfigurationChangeFromTransaction(rehydrated.getRecordId(), key, entitySqlDaoWrapperFactory, context);
                 return null;
             }
         });