今天,从指标引擎正式系统中拷贝下来一个class文件,进行反编译(由于手中没有的源码不确定和服务器上一致)。却发现有部分代码不一致:
反编译后代码:
if (isNormal) break label712;
if (alert == null)
{
alert = this.alertUtil.generateTempAlert(kpiId, kpiName, neId, neName, kpiTime, kpiValue,
basLineDefine.getId(), tempTolerateLine, lineValues, 2);
this.alertUtil.insertActiveAlert(dbdao, alert);
} else {
Alert alert1 = this.alertUtil.findActiveAlert(dbdao, kpiId, neId, basLineDefine.getId(),
tempTolerateLine, 2);
activeAlertsOld.add(alert1);
this.alertUtil.updateActiveAlert(dbdao, isNormal, alert, kpiTime, kpiValue, tempTolerateLine,
lineValues);
}
label712: activeAlertsUpdate.add(alert);
java源码:
if (!isNormal) {
if (alert == null) {
// 如果没有告警,则生成该活动告警插入表中
alert = alertUtil.generateTempAlert(kpiId, kpiName, neId, neName, kpiTime, kpiValue,
basLineDefine.getId(), tempTolerateLine, lineValues, 2);
alertUtil.insertActiveAlert(dbdao, alert);
} else {
Alert alert1 = alertUtil.findActiveAlert(dbdao, kpiId, neId, basLineDefine.getId(),
tempTolerateLine, 2);
activeAlertsOld.add(alert1);
alertUtil.updateActiveAlert(dbdao, isNormal, alert, kpiTime, kpiValue, tempTolerateLine,
lineValues);
}
activeAlertsUpdate.add(alert);
}
不知道什么原因,用的是jd-gui 反编译的,并且把源码编译后,再反编译也是这种情况!
有标签无所谓了,只是为什么标签在后面定义呢?难道不会报错吗?