Are you using ACF or Railo? Any chance you have NULL support enabled?
And to confirm, when you dump out the application scope, you see a struct in it called “cbstorage”, and inside of that you see a key called “test” with a value of test?
Is there any chance that clearAll or removeStorage could be getting called prior to the get? Maybe reinitting the framework or something?
Yes, the application scope will be timed out by your CFML engine. If you have data that should only live a certain amount of time, I would recommend using CacheBox as you suggested. A provider such as the concurrentHashMap still still ultimately be stored in the application scope, but CacheBox will give you much better control over the lifespan.