no need to commit into 1.4.14 branch. the release has already been
cut. if we have to recut it we would do it from 1.4.x branch.

-igor

On Wed, Nov 24, 2010 at 10:27 AM,  <pe...@apache.org> wrote:
> Author: pedro
> Date: Wed Nov 24 18:27:33 2010
> New Revision: 1038752
>
> URL: http://svn.apache.org/viewvc?rev=1038752&view=rev
> Log:
> Porting the fix for WicketObjectOutputStream from the trunk to be released on 
> the Wicket 1.4.14
> Issue: WICKET-3136
>
> Modified:
>    
> wicket/branches/wicket-1.4.14/wicket/src/main/java/org/apache/wicket/util/io/WicketObjectOutputStream.java
>    
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/resource/DummyPage.java
>    
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/util/io/WicketOutputStreamTest.java
>
> Modified: 
> wicket/branches/wicket-1.4.14/wicket/src/main/java/org/apache/wicket/util/io/WicketObjectOutputStream.java
> URL: 
> http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.14/wicket/src/main/java/org/apache/wicket/util/io/WicketObjectOutputStream.java?rev=1038752&r1=1038751&r2=1038752&view=diff
> ==============================================================================
> --- 
> wicket/branches/wicket-1.4.14/wicket/src/main/java/org/apache/wicket/util/io/WicketObjectOutputStream.java
>  (original)
> +++ 
> wicket/branches/wicket-1.4.14/wicket/src/main/java/org/apache/wicket/util/io/WicketObjectOutputStream.java
>  Wed Nov 24 18:27:33 2010
> @@ -28,11 +28,18 @@ import java.util.HashMap;
>  import java.util.Iterator;
>  import java.util.Map;
>  import java.util.Map.Entry;
> +import java.util.Stack;
>
> +import org.apache.wicket.protocol.http.WebApplication;
>  import org.apache.wicket.util.lang.Generics;
>
>
>  /**
> + * The Wicket ObjectOutputStream to enable back-button support for the 
> reloading mechanism, be sure
> + * to put <tt>Objects.setObjectStreamFactory(new 
> WicketObjectStreamFactory());</tt> in your
> + * application's {...@link WebApplication#init()} method.
> + *
> + * @see org.apache.wicket.protocol.http.ReloadingWicketFilter
>  * @author jcompagner
>  */
>  public final class WicketObjectOutputStream extends ObjectOutputStream
> @@ -445,7 +452,7 @@ public final class WicketObjectOutputStr
>        private final HandleArrayListStack<Object> defaultWrite = new 
> HandleArrayListStack<Object>();
>        private final DataOutputStream out;
>
> -       private ClassStreamHandler classHandler;
> +       private final Stack<ClassStreamHandler> classHandlerStack = new 
> Stack<ClassStreamHandler>();
>
>        private PutField curPut;
>
> @@ -470,7 +477,7 @@ public final class WicketObjectOutputStr
>       �...@override
>        public void close() throws IOException
>        {
> -               classHandler = null;
> +               classHandlerStack.clear();
>                curObject = null;
>                curPut = null;
>                handledObjects.clear();
> @@ -487,7 +494,7 @@ public final class WicketObjectOutputStr
>                if (!defaultWrite.contains(curObject))
>                {
>                        defaultWrite.add(curObject);
> -                       classHandler.writeFields(this, curObject);
> +                       classHandlerStack.peek().writeFields(this, curObject);
>                }
>        }
>
> @@ -790,7 +797,7 @@ public final class WicketObjectOutputStr
>                                else
>                                {
>                                        Class<?> realClz = cls;
> -                                       classHandler = 
> ClassStreamHandler.lookup(realClz);
> +                                       ClassStreamHandler classHandler = 
> ClassStreamHandler.lookup(realClz);
>
>                                        Object object = 
> classHandler.writeReplace(obj);
>                                        if (object != null)
> @@ -815,6 +822,7 @@ public final class WicketObjectOutputStr
>                                                curObject = obj;
>                                                try
>                                                {
> +                                                       
> classHandlerStack.push(classHandler);
>                                                        if 
> (!classHandler.invokeWriteMethod(this, obj))
>                                                        {
>                                                                
> classHandler.writeFields(this, obj);
> @@ -849,6 +857,7 @@ public final class WicketObjectOutputStr
>                                                }
>                                                finally
>                                                {
> +                                                       
> classHandlerStack.pop();
>                                                        curObject = oldObject;
>                                                        curPut = old;
>                                                }
>
> Modified: 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/resource/DummyPage.java
> URL: 
> http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/resource/DummyPage.java?rev=1038752&r1=1038751&r2=1038752&view=diff
> ==============================================================================
> --- 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/resource/DummyPage.java
>  (original)
> +++ 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/resource/DummyPage.java
>  Wed Nov 24 18:27:33 2010
> @@ -16,6 +16,7 @@
>  */
>  package org.apache.wicket.resource;
>
> +import org.apache.wicket.IPageMap;
>  import org.apache.wicket.markup.html.WebPage;
>
>  /**
> @@ -36,4 +37,10 @@ public class DummyPage extends WebPage
>                super();
>        }
>
> +
> +       public DummyPage(IPageMap pageMap)
> +       {
> +               super(pageMap);
> +       }
> +
>  }
>
> Modified: 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/util/io/WicketOutputStreamTest.java
> URL: 
> http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/util/io/WicketOutputStreamTest.java?rev=1038752&r1=1038751&r2=1038752&view=diff
> ==============================================================================
> --- 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/util/io/WicketOutputStreamTest.java
>  (original)
> +++ 
> wicket/branches/wicket-1.4.14/wicket/src/test/java/org/apache/wicket/util/io/WicketOutputStreamTest.java
>  Wed Nov 24 18:27:33 2010
> @@ -17,6 +17,7 @@
>  package org.apache.wicket.util.io;
>
>  import java.io.ByteArrayInputStream;
> +import java.io.IOException;
>  import java.math.BigInteger;
>  import java.util.GregorianCalendar;
>  import java.util.Locale;
> @@ -24,10 +25,12 @@ import java.util.Locale;
>  import junit.framework.Assert;
>
>  import org.apache.wicket.Page;
> +import org.apache.wicket.PageMap;
>  import org.apache.wicket.RequestCycle;
>  import org.apache.wicket.WicketTestCase;
>  import org.apache.wicket.protocol.http.HttpSessionStore;
>  import org.apache.wicket.protocol.http.WebApplication;
> +import org.apache.wicket.resource.DummyPage;
>  import org.apache.wicket.session.ISessionStore;
>
>  /**
> @@ -139,6 +142,17 @@ public class WicketOutputStreamTest exte
>                RequestCycle.get().detach();
>        }
>
> +       public void testPageWithPageMapSerialization() throws IOException, 
> ClassNotFoundException
> +       {
> +               DummyPage dummyPage = new DummyPage(PageMap.forName("test"));
> +               woos.writeObject(dummyPage);
> +               ByteArrayInputStream bais = new 
> ByteArrayInputStream(baos.toByteArray());
> +
> +               WicketObjectInputStream wois = new 
> WicketObjectInputStream(bais);
> +               DummyPage dummyPage2 = (DummyPage)wois.readObject();
> +
> +               Assert.assertEquals(dummyPage.getClass(), 
> dummyPage2.getClass());
> +       }
>
>        // public void testStringsEqualsAfterSerialization() throws Exception
>        // {
>
>
>

Reply via email to