Snakeyaml的一個bug

kimmking發表於2020-11-18

Snakeyaml的一個bug

反序列化一個Properties型別,會直接當做Map處理。

就是說把

num: 1

變成一個String的key(num)和一個Integer的value(1),然後put到Properties物件,而不是使用setProperty方法。

java.util.Properties雖然是個繼承HashTable的Map,但是一般我們都用setProperty和getProperty,這兩個方法寫死了只處理string。特別是getProprety裡判斷了一下如果value不是string就直接返回null。

所以,snakeyaml反序列化出來的Properties物件,要麼只能用get/put訪問。
這也是一個yaml跟Properties的差別吧。

導致ShardingSphere的一個bug

  • https://github.com/apache/shardingsphere/issues/8204

相關文章