Mam klasę rozszerzającą SwingWorker nazwijmy ją "simpleWork" po niej dziedziczy kilka klas.
W zależności od tego co wybierze użytkownik do referencji simpleWork przypisywana jest jedna z jej klas potomnych, a następnie jest uruchamiana. Korzystając informacji zawartych tu http://docs.oracle.com/javase/tutorial/uiswing/concurrency/cancel.html chce zatrzymać wykonywanie zadania (jednego z potomków) używając drugiej metody.
Po wywołaniu simpleWork.cancel(true) metoda isCancelled() zwraca raz true a w kolejnych iteracjach false wiec warunek stopu związany ze sprawdzaniem jej wartości nie działa.
Co jest tego powodem? Dlaczego w brew temu co pisali w dokumentacji zwraca ona false po cancel()?