2024年Clojure调查中分享您的观点!

欢迎!请在关于页面上查看更多关于这个如何工作的信息。

+2
Clojure
已关闭

您好,我在升级到Clojure 1.11.0时遇到了以下问题。在我们的应用程序中,我们创建V5(基于名称,SHA1散列)uuids的地方使用了danlentz/clj-uuid库。在升级后,v5 uuids产生的变化不一致。例如

(def ^:const +namespace+ #uuid "50d94d91-a1cf-422d-9586-4ddacf6df176")

(clj-uuid/v5 +namespace+ :some-keyword) 

;; Clojure 1.10.3
=> #uuid "d30e9c3c-ced2-534e-a6b8-ecf784fb0785"

;; Clojure 1.11.0
=> #uuid "a16f6719-952a-55b9-b71b-b15dd263665b"

经过一些实验和错误尝试,似乎是由于本地区域参数,即::some-keyword引起的差异,因为在clj-uuid/v5函数中,它将关键字对象转换为字节数组,现在看起来是不同的。(如果我用字符串而不是关键字作为本地区域参数,则生成的uuid在Clojure升级前后是一致的。)
这些uuids用于下游系统,而且要他们处理这些变化是很困难的。有没有什么方法可以达到与之前相同的uuids?

关闭注释: 在1.11.1中修复

2 个回答

0

你好。谢谢你的报告。只为了澄清——测试之间使用的Java版本是相同的,对吗?

是的,相同的Java版本(openjdk版本"17.0.2")。
0

编辑
...