public void run() { processing = true; try { while (true) { FileObject path = myPaths.take(); if (path == myStopThreadToken) { break; } processPath(path, myProject); } } catch (InterruptedException e) { LOG.error(e); } catch (CacheCorruptedException e) { myError = e; } finally { processing = false; } }