Действительно, .clone() клонирует только первое измерение двумерного массива.
Добавление вот такой процедуры помогает:## Код:
```
private static int[][] deepClone (int[][] arr) {
      int[][] res = arr.clone();
      for (int i = 0; i < arr.length; i++) {
         res[i] = arr[i].clone();
      }
      return res;
   }
```
