kettle的bug

在kettle-core.jar的org.pentaho.di.core.util.StringUtil类中,一个bug导致kjb在Spoon和Kitchen执行时变量替换行为不一致。当尝试替换的变量不存在时,Spoon会替换为空,而Kitchen则不替换。问题出在第53行,应当将`value = open + varName + close;`修改为`value = "";`,以确保一致性。
部署运行你感兴趣的模型镜像
在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 = substitute((String)value, variablesValues, open, close, recursion);
}
}
buffer.append(rest.substring(0, i));
buffer.append(value);
rest = rest.substring(j + close.length());
}
else
{
buffer.append(rest);
rest = "";
}

i = rest.indexOf(open);
}

其中的
value = open + varName + close;
应该为value = "";

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值