|
@@ -1,3 +1,5 @@
|
|
|
+var extend = require('util')._extend;
|
|
|
+
|
|
|
var debug = require('debug')('ylt:ruleschecker');
|
|
|
|
|
|
var RulesChecker = function() {
|
|
@@ -21,7 +23,7 @@ var RulesChecker = function() {
|
|
|
|
|
|
rule = {
|
|
|
value: data.toolsResults[policy.tool].metrics[metricName],
|
|
|
- policy: policy
|
|
|
+ policy: extend({}, policy) // Clone object policy instead of reference
|
|
|
};
|
|
|
|
|
|
var offenders = [];
|
|
@@ -56,8 +58,15 @@ var RulesChecker = function() {
|
|
|
// The function should take an array of strings as single parameter and return a string.
|
|
|
if (policy.offendersTransformFn) {
|
|
|
rule.offendersCount = offenders.length;
|
|
|
- offenders = policy.offendersTransformFn(offenders);
|
|
|
- delete policy.offendersTransformFn;
|
|
|
+
|
|
|
+ try {
|
|
|
+ offenders = policy.offendersTransformFn(offenders);
|
|
|
+ } catch(err) {
|
|
|
+ debug('Error while transforming offenders for %s', metricName);
|
|
|
+ debug(err);
|
|
|
+ }
|
|
|
+
|
|
|
+ delete rule.policy.offendersTransformFn;
|
|
|
}
|
|
|
|
|
|
if (offenders && offenders.length > 0) {
|