Revision: 10212
Author: [email protected]
Date: Tue May 24 05:33:27 2011
Log: Add a ServletContext ThreadLocal to RequestFactoryServlet.
http://gwt-code-reviews.appspot.com/1448804/
Patch by: larsenje
Review by: bobv
http://code.google.com/p/google-web-toolkit/source/detail?r=10212
Modified:
/trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java
=======================================
---
/trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java
Tue Apr 5 10:47:39 2011
+++
/trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java
Tue May 24 05:33:27 2011
@@ -23,6 +23,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -43,6 +44,7 @@
* These ThreadLocals are used to allow service objects to obtain access
to
* the HTTP transaction.
*/
+ private static final ThreadLocal<ServletContext> perThreadContext = new
ThreadLocal<ServletContext>();
private static final ThreadLocal<HttpServletRequest> perThreadRequest =
new ThreadLocal<HttpServletRequest>();
private static final ThreadLocal<HttpServletResponse> perThreadResponse
= new ThreadLocal<HttpServletResponse>();
@@ -63,6 +65,15 @@
public static HttpServletResponse getThreadLocalResponse() {
return perThreadResponse.get();
}
+
+ /**
+ * Returns the thread-local {@link ServletContext}
+ *
+ * @return the {@link ServletContext} associated with this servlet
+ */
+ public static ServletContext getThreadLocalServletContext() {
+ return perThreadContext.get();
+ }
private final SimpleRequestProcessor processor;
@@ -102,6 +113,7 @@
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws IOException, ServletException {
+ perThreadContext.set(getServletContext());
perThreadRequest.set(request);
perThreadResponse.set(response);
@@ -130,6 +142,7 @@
log.log(Level.SEVERE, "Unexpected error", e);
}
} finally {
+ perThreadContext.set(null);
perThreadRequest.set(null);
perThreadResponse.set(null);
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors