是否需要为 DataFlowTemplate.streamOperations().updateStream(..) 方法设置 PackageIdentifier 实例的 `packageVersion`?

Is it required to set `packageVersion` of PackageIdentifier instance for DataFlowTemplate.streamOperations().updateStream(..) method?

我正在实例化 PackageIdentifier class 以将其传递给 DataFlowTemplate.streamOperations().updateStream(..) 方法,我设置了属性 repositoryNamepackageName,但是我想知道 packageVersion 是否需要 属性?因为我可以看到没有它它也能工作。 只是,我有一个异常,但无法再次重现,并且想知道 packageVersion 是不是这个问题的原因?:

Caused by: org.springframework.cloud.dataflow.rest.client.DataFlowClientException: Can not find package 'input-to-event-message-channel', version 'null'
    at org.springframework.cloud.dataflow.rest.client.VndErrorResponseErrorHandler.handleError(VndErrorResponseErrorHandler.java:65) ~[spring-cloud-dataflow-rest-client-2.0.2.RELEASE.jar:2.0.2.RELEASE]

packageVersion 不是 必需的,因为 Skipper 中存在具有所需名称(在本例中为 "stream name")的包数据库。

参见:Stream.java#L112-L114

至于错误,可能是您使用的是 H2 而不是 Skipper 的持久数据库,并且在重新启动后,您的 client/test 可能会继续尝试升级临时数据库没有任何足迹了。