What is stale state?

I was reading about the object pool pattern on Wikipedia (http://en.wikipedia.org/wiki/Object_pool) and it mentions "dangerously stale state".

What exactly is "stale" state? I know state is variables/data, such as my fields and properties, but what does it mean by stale or dangerously stale?

13.10.2009 22:35:31
Side effects come to mind as something along this line.
JB King 13.10.2009 22:40:10
Stale data is serious business martinfowler.com/bliki/TwoHardThings.html
Frank Schwieterman 13.10.2009 22:42:27

Stale state is information in an object that does not reflect reality.

Example: an object's members are filled with information from a database, but the underlying data in the database has changed since the object was filled.

Dangerously stale state is stale state that might adversely affect the operation of a program, i.e. causing it to perform incorrectly due to invalid assumptions about the data's integrity.

13.10.2009 22:38:36

It happens when the value stored in the object does not anymore reflect the underlying persistent value. I guess dangerously stale is just a way to say that the value is really outdated.

13.10.2009 22:38:38

Basically, it means invalid state. Usually a by-product of not notifying your instances of state change.

13.10.2009 22:38:41

"Stale state" is when an object's stored (cached) view of the rest of the system becomes out of date. Eg an object is holding a handle to some other object, but the second object has been deleted in the meantime.

Trying to dereference a stale handle can lead to big problems.

Most systems will try to automagically protect you from various reasons for ending up with stale state, but it is not always possible to cover every case. (Depending on the system.)


13.10.2009 22:41:19