[jboss-svn-commits] JBoss Portal SVN: r5258 - in trunk/portlet/src/main/org/jboss/portal: portlet/state portlet/state/producer test/portlet/state

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 26 07:35:55 EDT 2006


Author: julien at jboss.com
Date: 2006-09-26 07:35:50 -0400 (Tue, 26 Sep 2006)
New Revision: 5258

Modified:
   trunk/portlet/src/main/org/jboss/portal/portlet/state/StateConversionException.java
   trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
   trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java
Log:
make StateConversionException a checked exception instead of a runtime exception

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/StateConversionException.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/StateConversionException.java	2006-09-26 10:44:31 UTC (rev 5257)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/StateConversionException.java	2006-09-26 11:35:50 UTC (rev 5258)
@@ -25,7 +25,7 @@
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
  * @version $Revision: 1.1 $
  */
-public class StateConversionException extends RuntimeException
+public class StateConversionException extends Exception
 {
    public StateConversionException()
    {

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java	2006-09-26 10:44:31 UTC (rev 5257)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java	2006-09-26 11:35:50 UTC (rev 5258)
@@ -43,6 +43,7 @@
 import org.jboss.portal.portlet.state.NoSuchStateException;
 import org.jboss.portal.portlet.state.PortletClonedEvent;
 import org.jboss.portal.portlet.state.PortletModifiedEvent;
+import org.jboss.portal.portlet.state.StateConversionException;
 import org.jboss.portal.portlet.info.PreferenceInfo;
 import org.jboss.portal.portlet.info.PreferencesInfo;
 import org.jboss.portal.portlet.info.PortletInfo;
@@ -136,9 +137,16 @@
       {
          if (portletContext instanceof StatefulPortletContext)
          {
-            StatefulPortletContext statefulPortletContext = (StatefulPortletContext)portletContext;
-            ProducerState state = stateConverter.unmarshall(statefulPortletContext.getMarshalldState());
-            return portletInvoker.getPortlet(new PortletContext(state.getPortletId()));
+            try
+            {
+               StatefulPortletContext statefulPortletContext = (StatefulPortletContext)portletContext;
+               ProducerState state = stateConverter.unmarshall(statefulPortletContext.getMarshalldState());
+               return portletInvoker.getPortlet(new PortletContext(state.getPortletId()));
+            }
+            catch (StateConversionException e)
+            {
+               throw new PortletInvokerException(e);
+            }
          }
          else
          {
@@ -274,9 +282,7 @@
                }
                else
                {
-                  ProducerState cloneState = new ProducerState(state.getPortletId(), newPrefs);
-                  byte[] bytes = stateConverter.marshall(cloneState);
-                  StatefulPortletContext clonedCtx = new StatefulPortletContext(CONSUMER_CLONE_ID, bytes);
+                  StatefulPortletContext clonedCtx = marshall(state.getPortletId(), newPrefs);
                   PortletClonedEvent event = new PortletClonedEvent(clonedCtx);
                   instanceCtx.onStateEvent(event);
                }
@@ -328,9 +334,7 @@
             }
             else
             {
-               ProducerState cloneState = new ProducerState(targetPortletId, newPrefs);
-               byte[] bytes = stateConverter.marshall(cloneState);
-               PortletContext modifiedCtx = new StatefulPortletContext(targetPortletId, bytes);
+               StatefulPortletContext modifiedCtx = marshall(targetPortletId, newPrefs);
                PortletModifiedEvent event = new PortletModifiedEvent(modifiedCtx);
                instanceCtx.onStateEvent(event);
             }
@@ -376,9 +380,7 @@
          }
          else
          {
-            String cloneId = PRODUCER_CLONE_ID_PREFIX + "dumbvalue";
-            byte[] marshalledState = stateConverter.marshall(state);
-            return new StatefulPortletContext(cloneId, marshalledState);
+            return marshall(state.getPortletId(), state.getProperties());
          }
       }
       else
@@ -398,10 +400,7 @@
          }
          else
          {
-            String cloneId = PRODUCER_CLONE_ID_PREFIX + "dumbvalue";
-            ProducerState sstate = new ProducerState(portletId, newState);
-            byte[] marshalledState = stateConverter.marshall(sstate);
-            return new StatefulPortletContext(cloneId, marshalledState);
+            return marshall(portletId, newState);
          }
       }
    }
@@ -618,10 +617,22 @@
       }
       else
       {
-         ProducerState sstate = new ProducerState(referencedPortletId, properties);
+         return marshall(referencedPortletId, properties);
+      }
+   }
+
+   private StatefulPortletContext marshall(String portletId, PropertyMap props) throws PortletInvokerException
+   {
+      try
+      {
+         ProducerState sstate = new ProducerState(portletId, props);
          byte[] marshalledState = stateConverter.marshall(sstate);
-         return new StatefulPortletContext(portletId, marshalledState);
+         return new StatefulPortletContext(CONSUMER_CLONE_ID, marshalledState);
       }
+      catch (StateConversionException e)
+      {
+         throw new PortletInvokerException(e);
+      }
    }
 
    /**
@@ -689,10 +700,17 @@
       }
       else
       {
-         StatefulPortletContext statefulPortletContext = (StatefulPortletContext)portletContext;
-         byte[] marshalledState = statefulPortletContext.getMarshalldState();
-         ProducerState state = stateConverter.unmarshall(marshalledState);
-         return state;
+         try
+         {
+            StatefulPortletContext statefulPortletContext = (StatefulPortletContext)portletContext;
+            byte[] marshalledState = statefulPortletContext.getMarshalldState();
+            ProducerState state = stateConverter.unmarshall(marshalledState);
+            return state;
+         }
+         catch (StateConversionException e)
+         {
+            throw new InvalidPortletIdException(e, portletContext.getId());
+         }
       }
    }
 }

Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java	2006-09-26 10:44:31 UTC (rev 5257)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java	2006-09-26 11:35:50 UTC (rev 5258)
@@ -40,7 +40,7 @@
 
    private final StateConverter converter = new StateConverterV0();
 
-   public void testIAE()
+   public void testIAE() throws StateConversionException
    {
       try
       {
@@ -60,7 +60,7 @@
       }
    }
 
-   public void testAlteredMagic()
+   public void testAlteredMagic() throws StateConversionException
    {
       byte[] bytes = converter.marshall(new ProducerState("foo"));
       bytes[0] = (byte)0xCA;
@@ -77,7 +77,7 @@
       }
    }
 
-   public void testBadVersionNumber()
+   public void testBadVersionNumber() throws StateConversionException
    {
       byte[] bytes = converter.marshall(new ProducerState("foo"));
       bytes[4] = (byte)0x01;




More information about the jboss-svn-commits mailing list