State removal on oversize
This commit is contained in:
parent
ea539b2a96
commit
b4cbc72b8f
@ -114,7 +114,7 @@ public class CalculatedFieldEntityMessageProcessor extends AbstractContextAwareM
|
||||
}
|
||||
try {
|
||||
var state = getOrInitState(ctx);
|
||||
if (!state.isSizeExceedsLimit()) {
|
||||
if (state.isSizeOk()) {
|
||||
processStateIfReady(ctx, Collections.singletonList(ctx.getCfId()), state, null, null, msg.getCallback());
|
||||
} else {
|
||||
throw new RuntimeException(ctx.getSizeExceedsLimitMessage());
|
||||
@ -273,10 +273,25 @@ public class CalculatedFieldEntityMessageProcessor extends AbstractContextAwareM
|
||||
if (stateSizeOk) {
|
||||
cfStateService.persistState(ctxId, state, callback);
|
||||
} else {
|
||||
throw CalculatedFieldException.builder().ctx(ctx).eventEntity(entityId).errorMessage(ctx.getSizeExceedsLimitMessage()).build();
|
||||
removeStateAndRaiseSizeException(ctxId, CalculatedFieldException.builder().ctx(ctx).eventEntity(entityId).errorMessage(ctx.getSizeExceedsLimitMessage()).build(), callback);
|
||||
}
|
||||
}
|
||||
|
||||
private void removeStateAndRaiseSizeException(CalculatedFieldEntityCtxId ctxId, CalculatedFieldException ex, TbCallback callback) {
|
||||
// We remove the state, but remember that it is over-sized in a local map.
|
||||
cfStateService.removeState(ctxId, new TbCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
callback.onFailure(ex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
callback.onFailure(ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private Map<String, ArgumentEntry> mapToArguments(CalculatedFieldCtx ctx, List<TsKvProto> data) {
|
||||
return mapToArguments(ctx.getMainEntityArguments(), data);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user