common-collections4

官方认为旧的common-collection有一些结构和API设计上的问题,但修复这些问题会产生大量不能向前兼容的改动。于是推出的common-collection4不再认为是一个用来替换common-collection的新版本,而是一个新的包。

两者的命名空间不冲突,可以共存在同一个项目中。

改动:

对LazyMap.decorate方法进行了改动

common-collection-3.1

Untitled

common-collection4-4.0

Untitled

但不影响调用链的执行

在common-collection4-4.0下,依旧能利用common-collection-3.1的调用链,只是换了个包名而已

环境

common-collections4-4.0

JDK 1.8.0_192

PriorityQueue和TransformingComparator初探

针对common-collections4,ysoserial也是给出了两条反序列化调用链,也就是cc2和cc4

在cc2中,出现一个陌生的类,org.apache.commons.collections4.comparators.TransformingComparator类,一个common-collections4独有的类

从调用链来看,会利用TransformingComparator.compare方法

Untitled

compare方法中,会调用transform方法。