Search code examples
javagoogle-app-enginethread-local

ThreadLocal on Google App Engine (GAE)


I would like to make some request-wide data available in my app engine application.

Examples:

  • The URL for which the request was made.
  • Authentication information.

I see that ThreadLocal is on GAE's JRE whitelist.

Is ThreadLocala good and safe way to make this information available? Are there alternative / better / more accepted ways?


Solution

  • Yes, it is an accepted practice to store these things in a ThreadLocal. However, a more preferable approach is to pass these values around (as method arguments) wherever they are needed, instead of reaching for them. It's more preferable, because it's more testable at least.