You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2017/07/17 14:53:39 UTC

deltaspike git commit: DELTASPIKE-1282 DeltaSpikeFacesContextWrapper leaks on TomEE

Repository: deltaspike
Updated Branches:
  refs/heads/master 42d156c4d -> a4998790a


DELTASPIKE-1282 DeltaSpikeFacesContextWrapper leaks on TomEE

Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/a4998790
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/a4998790
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/a4998790

Branch: refs/heads/master
Commit: a4998790afe24bde62ae3aa37e6a0c5728c81004
Parents: 42d156c
Author: Thomas Andraschko <ta...@apache.org>
Authored: Mon Jul 17 16:53:33 2017 +0200
Committer: Thomas Andraschko <ta...@apache.org>
Committed: Mon Jul 17 16:53:33 2017 +0200

----------------------------------------------------------------------
 .../request/DeltaSpikeFacesContextFactory.java     |  2 +-
 .../request/DeltaSpikeFacesContextWrapper.java     | 17 +++++++++++------
 2 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/a4998790/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextFactory.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextFactory.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextFactory.java
index dafe21a..eca63d4 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextFactory.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextFactory.java
@@ -62,7 +62,7 @@ public class DeltaSpikeFacesContextFactory extends FacesContextFactory implement
         FacesContext facesContext =
                 this.wrappedFacesContextFactory.getFacesContext(context, request, response, lifecycle);
 
-        if (facesContext == null || this.deactivated)
+        if (facesContext == null || this.deactivated || facesContext instanceof DeltaSpikeFacesContextWrapper)
         {
             return facesContext;
         }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/a4998790/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextWrapper.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextWrapper.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextWrapper.java
index 7e795ea..d1d3bfb 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextWrapper.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/DeltaSpikeFacesContextWrapper.java
@@ -84,8 +84,6 @@ class DeltaSpikeFacesContextWrapper extends FacesContextWrapper
         {
             this.wrappedExternalContext = wrappedFacesContext.getExternalContext();
         }
-
-        setCurrentInstance(this);
     }
 
     /**
@@ -95,12 +93,19 @@ class DeltaSpikeFacesContextWrapper extends FacesContextWrapper
     @Override
     public void release()
     {
-        if (!this.wrappedFacesContext.getApplication().getResourceHandler().isResourceRequest(this.wrappedFacesContext))
+        // try/finally shouldn't be required...
+        try
+        {
+            if (!this.wrappedFacesContext.getApplication().getResourceHandler()
+                    .isResourceRequest(this.wrappedFacesContext))
+            {
+                broadcastDestroyedJsfRequestEvent();
+            }
+        }
+        finally
         {
-            broadcastDestroyedJsfRequestEvent();
+            super.release();
         }
-
-        wrappedFacesContext.release();
     }
     
     @Override