if (constraintFailures != null) {
clone.constraintFailures.addAll(Collections.unmodifiableList(constraintFailures));
}
// Clone the current kernel state
if (kernelState != null) {
KernelState cloneState = new KernelState(kernelState);
clone.setKernelState(cloneState);
}
// Clone historys
clone.constraintFailureHistory = (Stack<Integer>) constraintFailureHistory.clone();
if (history != null) {