You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gc...@apache.org on 2011/08/10 20:49:51 UTC

svn commit: r1156311 - /myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java

Author: gcrawford
Date: Wed Aug 10 18:49:51 2011
New Revision: 1156311

URL: http://svn.apache.org/viewvc?rev=1156311&view=rev
Log:
TRINIDAD-2052 Native memory issue Defltaer/inflater from StateManagerImpl

Modified:
    myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java

Modified: myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java?rev=1156311&r1=1156310&r2=1156311&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java (original)
+++ myfaces/trinidad/branches/1.2.12.6.0-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java Wed Aug 10 18:49:51 2011
@@ -55,7 +55,6 @@ import org.apache.myfaces.trinidad.conte
 import org.apache.myfaces.trinidad.context.Window;
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.util.ExternalContextUtils;
-import org.apache.myfaces.trinidad.util.TransientHolder;
 import org.apache.myfaces.trinidadinternal.context.RequestContextImpl;
 import org.apache.myfaces.trinidadinternal.context.TrinidadPhaseListener;
 import org.apache.myfaces.trinidadinternal.util.LRUCache;
@@ -1385,27 +1384,11 @@ public class StateManagerImpl extends St
 
     private Object _unzipBytes(FacesContext context, byte[] zippedBytes)
     {
-      Inflater decompressor = null;
-      ExternalContext externalContext = context.getExternalContext();
-      Map<String,Object> sessionMap  = externalContext.getSessionMap();
+      Inflater decompressor = new Inflater();
 
       try
       {
-        //Get inflater from session cope
-        TransientHolder<Inflater> th =
-                              (TransientHolder<Inflater>)sessionMap.remove("PAGE_STATE_INFLATER");
-
-        if (th != null)
-        {
-          decompressor = th.getValue();
-        }
-
-        if(decompressor == null)
-        {
-          decompressor = new Inflater();
-        }
-
-		    decompressor.setInput(zippedBytes);
+	decompressor.setInput(zippedBytes);
         ByteArrayOutputStream bos = new ByteArrayOutputStream(zippedBytes.length);
         byte[] buf = new byte[zippedBytes.length*5];
 
@@ -1438,39 +1421,16 @@ public class StateManagerImpl extends St
       }
       finally
       {
-        //Reset and put back
-        if(decompressor != null)
-        {
-          decompressor.reset();
-          decompressor.setInput(_EMPTY);
-          TransientHolder<Inflater> th = TransientHolder.newTransientHolder(decompressor);
-          sessionMap.put("PAGE_STATE_INFLATER", th);
-        }
+        decompressor.end();
       }
     }
 
     private void _zipToBytes(FacesContext context, Object viewState)
     {
-      Deflater compresser = null;
-      ExternalContext externalContext = context.getExternalContext();
-      Map<String,Object> sessionMap  = externalContext.getSessionMap();
+      Deflater compresser = new Deflater(Deflater.BEST_SPEED);
 
       try
       {
-        //Get deflater from session cope
-        TransientHolder<Deflater> th =
-                              (TransientHolder<Deflater>)sessionMap.remove("PAGE_STATE_DEFLATER");
-
-        if (th != null)
-        {
-          compresser = th.getValue();
-        }
-
-        if(compresser == null)
-        {
-          compresser = new Deflater(Deflater.BEST_SPEED);
-        }
-
         //Serialize state
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         ObjectOutputStream oos = new ObjectOutputStream(baos);
@@ -1500,14 +1460,7 @@ public class StateManagerImpl extends St
       }
       finally
       {
-        //Reset and put back
-        if(compresser != null)
-        {
-          compresser.reset();
-          compresser.setInput(_EMPTY);
-          TransientHolder<Deflater> th = TransientHolder.newTransientHolder(compresser);
-          sessionMap.put("PAGE_STATE_DEFLATER", th);
-        }
+        compresser.end();
       }
     }
   }
@@ -1572,7 +1525,5 @@ public class StateManagerImpl extends St
 
   private static final long serialVersionUID = 1L;
 
-  private static final byte[] _EMPTY = new byte[0];
-
   private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(StateManagerImpl.class);
 }