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;
}
});