Closed Occult0318 closed 5 years ago
修改判断条件为if (biz.getBizState() != BizState.DEACTIVATED) {}else{}以后重新打包运行就ok了,所以咱的理解有问题吗
嗯,已经fix了。
if (biz.getBizState() != BizState.ACTIVATED
&& biz.getBizState() != BizState.DEACTIVATED) {
LOGGER.info(String.format("The specified biz's state must not be %s.",
biz.getBizState()));
return String
.format("The specified biz's state must not be %s.", biz.getBizState());
} else {
bizManagerService.activeBiz(bizName, bizVersion);
LOGGER.info(String.format("Switch biz:\'%s\' to be activated.", biz.getIdentity()));
return String.format("Biz:\'%s\' is activated.", biz.getIdentity());
}
if (biz.getBizState() != BizState.ACTIVATED && biz.getBizState() != BizState.DEACTIVATED) 已经是激活状态的包也可以切换吗,感觉好像没必要吧,虽然逻辑上好像没问题
if (biz.getBizState() != BizState.ACTIVATED && biz.getBizState() != BizState.DEACTIVATED) 已经是激活状态的包也可以切换吗,感觉好像没必要吧,虽然逻辑上好像没问题
如果是Activated, 其实是不会做任何事,只是打印日志告诉用户模块已经处于activated了。和操作者希望看到的是一致的。
嗯,好的
sofa-ark>check -b Biz count=3 bizName='app-one', bizVersion='1.0.0', bizState='activated' bizName='app-two', bizVersion='2.0.0', bizState='deactivated' bizName='app-two', bizVersion='1.0.0', bizState='activated'
sofa-ark>switch -b -n app-two -v 2.0.0 The specified biz's state must not be deactivated.
运行biz-jvm-invocation-sample测试热更新遇到上述报错。
com.alipay.sofa.jarslink.runtime.command.SwitchCommand.java中对于switch命令的判断如下 if (biz.getBizState() == BizState.UNRESOLVED || biz.getBizState() != BizState.RESOLVED || biz.getBizState() != BizState.BROKEN) { LOGGER.info(String.format("The specified biz's state must not be %s.", biz.getBizState())); return String .format("The specified biz's state must not be %s.", biz.getBizState()); } else { bizManagerService.activeBiz(bizName, bizVersion); LOGGER.info(String.format("Switch biz:\'%s\' to be activated.", biz.getIdentity())); return String.format("Biz:\'%s\' is activated.", biz.getIdentity()); } 这个判断条件biz.getBizState() != BizState.RESOLVED || biz.getBizState() != BizState.BROKEN永远是true,所以没法进行热切,这是个bug吧゛(‘◇’)?
java -version
):1.8uname -a
):win10