NullPointer在负载测试下排序失败(不一致)

时间:2019-06-19 06:39:19

标签: java-8 java-stream

我有一个比较器代码,用于按foo字段排序。

List<Identity> myList = someValues....

//From RestController - sortMyList().accept(myList);

private Consumer<List<Identity>  sortMyList() {
   return myList-> myList.sort((o1,o2) -> compareByFoo().apply(o1,o2));
}

最后将compareByFoo函数定义为

foo =  "Some IntegerValue;yyyy-mm-dd hh:mm:ss:ms" => thats why someFunctionWhichTellsWhichisGreater


private BiFunction<Identity,Identity,Integer> compareByFoo(){
  return (o1,o2) -> {
       String value1 = o1.getFoo();
       String value2 = o2.getFoo();
       someFunctionWhichTellsWhichisGreater()apply(value1,value2);
   } 

}

在从REST Controller调用的服务代码中发生排序。

在正常工作负载下,该比较器可以正常工作。但是在具有6个并行调用的性能测试方案中,它抛出

NULLpointerException at  
String value2 = o2.getFoo(); Essentially o2 is null

我错过了使用Consumer或BiFunction的麻烦吗?

堆栈跟踪:

java.lang.NullpointerException at.... custom package....
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:366) ~[?:1.8.0]
    at java.util.TimSort.sort(TimSort.java:231) ~[?:1.8.0]
    at java.util.Arrays.sort(Arrays.java:1856) ~[?:1.8.0]
    at java.util.ArrayList.sort(ArrayList.java:1473) ~[?:1.8.0]

0 个答案:

没有答案