if (ruleTemp != null) {\r
throw new CorrelationException("A rule with the same name already exists.");\r
}\r
+ \r
String packageName = deployRule2Engine(correlationRule);\r
DmaapService.loopControlNames.put(packageName, ruleCreateRequest.getLoopControlName());\r
correlationRule.setPackageName(packageName);\r
- CorrelationRule result = correlationRuleDao.saveRule(correlationRule);\r
+ CorrelationRule result = null;\r
+ try {\r
+ result = correlationRuleDao.saveRule(correlationRule);\r
+ } catch (CorrelationException e) {\r
+ engineWarpper.deleteRuleFromEngine(packageName);\r
+ throw new CorrelationException(e.getMessage());\r
+ }\r
RuleAddAndUpdateResponse ruleAddAndUpdateResponse = new RuleAddAndUpdateResponse();\r
ruleAddAndUpdateResponse.setRuleId(result.getRid());\r
return ruleAddAndUpdateResponse;\r