• Bug
  • Status: Open
  • 2 Major
  • Resolution:
  • cdennis
  • Reporter: cdennis
  • March 10, 2011
  • 0
  • Watchers: 3
  • June 25, 2012

Description

The current behavior of throwing TCNotRunningException from toolkit methods (especially locking methods) when there is no active client available causes some strange behaviors in some of the toolkit classes. One such example (although I imagine there are many others) is that of TerracottaCondition. If the client associated with a TerracottaCondition is shutdown while a thread is waiting on the condition then on subsequent interruption the lock reacquire will throw a TCNotRunningException. This exception prevents reacquire of the lock hold, and so the subsequent associated write unlock throws an IllegalMonitorStateException that hides the original exception.

We should attempt to decide what the correct the behavior should be in such strange corner cases.

Comments