Fix multi tenant bean change (#982)

* FIX: beanChange has tenant-id

* FIX: NPE in DefaultServer.currentTenantId()
This commit is contained in:
Roland Praml
2017-02-26 13:12:26 +13:00
committed by Rob Bygrave
parent 23e1ab4bfd
commit 5f63d5c35f
5 changed files with 31 additions and 7 deletions
@@ -48,6 +48,9 @@ public class ChangeJsonBuilder {
writeBeanTransactionDetails(gen, changeSet, position);
gen.writeStringField("object", bean.getTable());
if (bean.getTenantId() != null) {
gen.writeStringField("tenantId", bean.getTenantId().toString());
}
gen.writeStringField("objectId", bean.getId().toString());
gen.writeStringField("change", bean.getType().getCode());
gen.writeNumberField("eventTime", bean.getEventTime());
@@ -314,7 +314,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
@Override
public Object currentTenantId() {
return currentTenantProvider.currentId();
return currentTenantProvider == null ? null : currentTenantProvider.currentId();
}
@Override
@@ -837,7 +837,8 @@ public class BeanDescriptor<T> implements MetaBeanInfo, BeanType<T> {
}
private BeanChange newBeanChange(Object id, ChangeType changeType, Map<String, ValuePair> values) {
return new BeanChange(getBaseTable(), id, changeType, values);
Object tenantId = ebeanServer.currentTenantId();
return new BeanChange(getBaseTable(), tenantId, id, changeType, values);
}
public SqlUpdate deleteById(Object id, List<Object> idList, boolean softDelete) {