You do realize the static variable is set on a per request basis.
In other words, every time you do a new request the variable will be empty initially, and set only after you first call the getInstance method.
How are you testing this code?
Because the new code does indeed use the singleton pattern.
Oh right, so statics do not exist across requests (sorry - i'm a Java developer, so I was hoping static meant the same thing as when working with that!). I'll find a different way to do what I need. Thanks!