Skip to content

Commit a9337ac

Browse files
author
chengyitian
committed
AJ-640: add 'attrExtraParams' check for cep;
1 parent 8848418 commit a9337ac

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/com/xxdb/streaming/cep/EventHandler.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,20 @@ public EventHandler(List<EventScheme> eventSchemes, List<String> eventTimeKeys,
5151
if ((!event.getAttrExtraParams().isEmpty() && length != event.getAttrExtraParams().size()) || length != event.getAttrForms().size() || length != event.getAttrTypes().size()) {
5252
throw new IllegalArgumentException("the number of eventKey, eventTypes, eventForms and eventExtraParams (if set) must have the same length.");
5353
}
54+
55+
// check if attrExtraParams valid
56+
if (Objects.nonNull(event.getAttrExtraParams()) && !event.getAttrExtraParams().isEmpty()) {
57+
for (int i = 0; i < event.getAttrTypes().size(); i++) {
58+
Entity.DATA_TYPE attrType = event.getAttrTypes().get(i);
59+
Integer scale = event.getAttrExtraParams().get(i);
60+
if (attrType == Entity.DATA_TYPE.DT_DECIMAL32 && (scale < 0 || scale > 9))
61+
throw new IllegalArgumentException(attrType + " scale " + scale + " is out of bounds, it must be in [0,9].");
62+
else if (attrType == Entity.DATA_TYPE.DT_DECIMAL64 && (scale < 0 || scale > 18))
63+
throw new IllegalArgumentException(attrType + " scale " + scale + " is out of bounds, it must be in [0,18].");
64+
else if (attrType == Entity.DATA_TYPE.DT_DECIMAL128 && (scale < 0 || scale > 38))
65+
throw new IllegalArgumentException(attrType + " scale " + scale + " is out of bounds, it must be in [0,38].");
66+
}
67+
}
5468
}
5569
int eventNum = eventSchemes.size();
5670

0 commit comments

Comments
 (0)