Мне интересно, компилирую ли я на Java 6, но кто-то запускает программу на Java 7, будет ли использоваться версия Java Array.sort на Java 6 или 7?
Это важно, потому что новый mergesort выбрасывает исключение IllegalArgumentException, а старый - нет (см. Метод сравнения нарушает его общий контракт! Только Java 7)
Теперь можно скомпилировать в Java 7 с помощью Arrays.useLegacyMergeSort, но, очевидно, этот флаг недоступен для Java 6 - и мы хотим быть совместимыми с Mac OS Snow Leopard (который использует 6).
По какой-то причине (см. http://madbean.com/2006/target14/), флаг компилятора -target, похоже, не создает совместимый код, поэтому мы скорее компилируются в Java 6.
Любые предложения?