kettle的bug

在kettle中的kettle-core.jar中存在一个bug,导致kjb在spoon中执行同在kitchen执行和调用api的时候执行结果不一样,体现在变量替换中如果要替换的变量不存在的时候,在spoon中替换为空,在kitchen中则不替换。具体bug所在位置为:org.pentaho.di.core.util.StringUtil中的53行。原来为int i = rest.in...
摘要由CSDN通过智能技术生成
在kettle中的kettle-core.jar中存在一个bug,导致kjb在spoon中执行同在kitchen执行和调用api的时候执行结果不一样,体现在变量替换中如果要替换的变量不存在的时候,在spoon中替换为空,在kitchen中则不替换。
具体bug所在位置为:org.pentaho.di.core.util.StringUtil中的53行。
原来为
int i = rest.indexOf(open);
while (i > -1)
{
int j = rest.indexOf(close, i + open.length());

if (j > -1)
{
String varName = rest.substring(i + open.length(), j);
Object value = variablesValues.get(varName);
if (value == null)
{
value = open + varName + close;
}
else
{
int another = ((String)value).indexOf(open);

if (another > -1)
{
if (recursion > 50)
{
throw new RuntimeException("Endless loop detected for substitution of variable: " + (String)value);
}

recursion++; value = substit
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值