You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2014/01/03 16:22:23 UTC

svn commit: r1555124 - in /myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago: internal/ajax/AjaxNavigationListener.java lifecycle/SecretPhaseListener.java util/DebugPhaseListener.java

Author: lofwyr
Date: Fri Jan  3 15:22:23 2014
New Revision: 1555124

URL: http://svn.apache.org/r1555124
Log:
TOBAGO-1350: response complete checks are missing in PhaseListeners

Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/ajax/AjaxNavigationListener.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/lifecycle/SecretPhaseListener.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/ajax/AjaxNavigationListener.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/ajax/AjaxNavigationListener.java?rev=1555124&r1=1555123&r2=1555124&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/ajax/AjaxNavigationListener.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/ajax/AjaxNavigationListener.java Fri Jan  3 15:22:23 2014
@@ -26,13 +26,15 @@ import javax.faces.event.PhaseListener;
 public class AjaxNavigationListener implements PhaseListener {
 
   public void afterPhase(final PhaseEvent phaseEvent) {
-    if (phaseEvent.getPhaseId() == PhaseId.RESTORE_VIEW) {
+    if (!phaseEvent.getFacesContext().getResponseComplete() && phaseEvent.getPhaseId() == PhaseId.RESTORE_VIEW) {
       AjaxNavigationState.afterRestoreView(phaseEvent.getFacesContext());
     }
   }
 
   public void beforePhase(final PhaseEvent phaseEvent) {
-    AjaxNavigationState.beforeRestoreView(phaseEvent.getFacesContext());
+    if (!phaseEvent.getFacesContext().getResponseComplete()) {
+      AjaxNavigationState.beforeRestoreView(phaseEvent.getFacesContext());
+    }
   }
 
   public PhaseId getPhaseId() {

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/lifecycle/SecretPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/lifecycle/SecretPhaseListener.java?rev=1555124&r1=1555123&r2=1555124&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/lifecycle/SecretPhaseListener.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/lifecycle/SecretPhaseListener.java Fri Jan  3 15:22:23 2014
@@ -35,7 +35,8 @@ public class SecretPhaseListener impleme
 
   public void afterPhase(final PhaseEvent event) {
     final FacesContext facesContext = event.getFacesContext();
-    if (facesContext.isPostback()
+    if (!facesContext.getResponseComplete()
+        && facesContext.isPostback()
         && TobagoConfig.getInstance(facesContext).isCheckSessionSecret()
         && !Secret.check(facesContext)) {
       if (LOG.isDebugEnabled()) {

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java?rev=1555124&r1=1555123&r2=1555124&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java Fri Jan  3 15:22:23 2014
@@ -43,9 +43,9 @@ public class DebugPhaseListener implemen
   private static final String KEY = DebugPhaseListener.class.getName() + "_ID_";
 
   public void afterPhase(final PhaseEvent phaseEvent) {
-    final FacesContext facesContext = FacesContext.getCurrentInstance();
+    final FacesContext facesContext = phaseEvent.getFacesContext();
     final boolean productionMode = TobagoConfig.getInstance(facesContext).getProjectStage() == ProjectStage.Production;
-    if (productionMode) {
+    if (facesContext.getResponseComplete() || productionMode) {
       return;
     }
 
@@ -91,8 +91,12 @@ public class DebugPhaseListener implemen
   }
 
   public void beforePhase(final PhaseEvent phaseEvent) {
-    final FacesContext facesContext = FacesContext.getCurrentInstance();
+    final FacesContext facesContext = phaseEvent.getFacesContext();
     final boolean productionMode = TobagoConfig.getInstance(facesContext).getProjectStage() == ProjectStage.Production;
+    if (facesContext.getResponseComplete()) {
+      LOG.info("Response is completed.");
+      return;
+    }
     if (productionMode) {
       LOG.warn("DebugPhaseListener disabled, because the project stage is 'production'.");
       return;