// Another false positive I found in Zookeeper.

import java.util.*;

class StringSort {
  public static void sort() {
    List<String> myList = new ArrayList<String>();
    Collections.sort(myList);
  }
}
