You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2008/02/18 17:33:17 UTC

svn commit: r628800 - in /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket: Application.java Component.java MetaDataEntry.java MetaDataKey.java PageMap.java RequestCycle.java Session.java

Author: knopp
Date: Mon Feb 18 08:33:16 2008
New Revision: 628800

URL: http://svn.apache.org/viewvc?rev=628800&view=rev
Log:
MetaData object doesn't have to be serializable for Application and RequestCycle metadata

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java Mon Feb 18 08:33:16 2008
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.Serializable;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -466,7 +465,7 @@
 	 * @return The metadata
 	 * @see MetaDataKey
 	 */
-	public final Serializable getMetaData(final MetaDataKey key)
+	public final Object getMetaData(final MetaDataKey key)
 	{
 		return key.get(metaData);
 	}
@@ -739,7 +738,7 @@
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */
-	public final synchronized void setMetaData(final MetaDataKey key, final Serializable object)
+	public final synchronized void setMetaData(final MetaDataKey key, final Object object)
 	{
 		metaData = key.set(metaData, object);
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java Mon Feb 18 08:33:16 2008
@@ -58,16 +58,16 @@
 
 /**
  * Component serves as the highest level abstract base class for all components.
- * 
+ *
  * <ul>
  * <li><b>Identity </b>- All Components must have a non-null id which is retrieved by calling
  * getId(). The id must be unique within the MarkupContainer that holds the Component, but does not
  * have to be globally unique or unique within a Page's component hierarchy.
- * 
+ *
  * <li><b>Hierarchy </b>- A component has a parent which can be retrieved with {@link #getParent()}.
  * If a component is an instance of MarkupContainer, it may have children. In this way it has a
  * place in the hierarchy of components contained on a given page.
- * 
+ *
  * <li><b>Component Paths </b>- The path from the Page at the root of the component hierarchy to a
  * given Component is simply the concatenation with dot separators of each id along the way. For
  * example, the path "a.b.c" would refer to the component named "c" inside the MarkupContainer named
@@ -76,12 +76,12 @@
  * bear a PageMap/Session-relative identifier as their id, so each absolute path will begin with a
  * number, such as "0.a.b.c". To get a Component path relative to the page that contains it, you can
  * call getPageRelativePath().
- * 
+ *
  * <li><b>LifeCycle </b>- Components participate in the following lifecycle phases:
  * <ul>
  * <li><b>Construction </b>- A Component is constructed with the Java language new operator.
  * Children may be added during construction if the Component is a MarkupContainer.
- * 
+ *
  * <li><b>Request Handling </b>- An incoming request is processed by a protocol request handler
  * such as WicketServlet. An associated Application object creates Session, Request and Response
  * objects for use by a given Component in updating its model and rendering a response. These
@@ -89,7 +89,7 @@
  * {@link Component#getRequestCycle()}. The convenience methods {@link Component#getRequest()},
  * {@link Component#getResponse()} and {@link Component#getSession()} provide easy access to the
  * contents of this container.
- * 
+ *
  * <li><b>Listener Invocation </b>- If the request references a listener on an existing Component,
  * that listener is called, allowing arbitrary user code to handle events such as link clicks or
  * form submits. Although arbitrary listeners are supported in Wicket, the need to implement a new
@@ -102,24 +102,24 @@
  * interface methods in Java must be public). Instead, Form subclasses should override user-oriented
  * methods such as onValidate(), onSubmit() and onError() (although only the latter two are likely
  * to be overridden in practice).
- * 
+ *
  * <li><b>onBeginRequest </b>- The {@link Component#onBeginRequest()} method is called.
- * 
+ *
  * <li><b>Form Submit </b>- If a Form has been submitted and the Component is a FormComponent, the
  * component's model is validated by a call to FormComponent.validate().
- * 
+ *
  * <li><b>Form Model Update </b>- If a valid Form has been submitted and the Component is a
  * FormComponent, the component's model is updated by a call to FormComponent.updateModel().
- * 
+ *
  * <li><b>Rendering </b>- A markup response is generated by the Component via
  * {@link Component#render()}, which calls subclass implementation code contained in
  * {@link Component#onRender(org.apache.wicket.markup.MarkupStream)}. Once this phase begins, a
  * Component becomes immutable. Attempts to alter the Component will result in a
  * WicketRuntimeException.
- * 
+ *
  * <li><b>onEndRequest </b>() - The {@link Component#onEndRequest()} method is called.
  * </ul>
- * 
+ *
  * <li><b>Component Models </b>- The primary responsibility of a component is to use its model (an
  * object that implements IModel), which can be set via {@link Component#setModel(IModel model)} and
  * retrieved via {@link Component#getModel()}, to render a response in an appropriate markup
@@ -128,29 +128,29 @@
  * convenience method {@link Component#getModelObject()} is provided to retrieve the model Object
  * from its IModel wrapper. A further convenience method, {@link Component#getModelObjectAsString()},
  * is provided for the very common operation of converting the wrapped model Object to a String.
- * 
+ *
  * <li><b>Visibility </b>- Components which have setVisible(false) will return false from
  * isVisible() and will not render a response (nor will their children).
- * 
+ *
  * <li><b>Page </b>- The Page containing any given Component can be retrieved by calling
  * {@link Component#getPage()}. If the Component is not attached to a Page, an
  * IllegalStateException will be thrown. An equivalent method, {@link Component#findPage()} is
  * available for special circumstances where it might be desirable to get a null reference back
  * instead.
- * 
+ *
  * <li><b>Session </b>- The Page for a Component points back to the Session that contains the Page.
  * The Session for a component can be accessed with the convenience method getSession(), which
  * simply calls getPage().getSession().
- * 
+ *
  * <li><b>Locale </b>- The Locale for a Component is available through the convenience method
  * getLocale(), which is equivalent to getSession().getLocale().
- * 
+ *
  * <li><b>String Resources </b>- Components can have associated String resources via the
  * Application's Localizer, which is available through the method {@link Component#getLocalizer()}.
  * The convenience methods {@link Component#getString(String key)} and
  * {@link Component#getString(String key, IModel model)} wrap the identical methods on the
  * Application Localizer for easy access in Components.
- * 
+ *
  * <li><b>Style </b>- The style ("skin") for a component is available through
  * {@link Component#getStyle()}, which is equivalent to getSession().getStyle(). Styles are
  * intended to give a particular look to a Component or Resource that is independent of its Locale.
@@ -158,39 +158,39 @@
  * the design look of "ocean" to the user. If the Session's style is set to "ocean" and these
  * resources are given names suffixed with "_ocean", Wicket's resource management logic will prefer
  * these resources to other resources, such as default resources, which are not as good of a match.
- * 
+ *
  * <li><b>Variation </b>- Whereas Styles are Session (user) specific, variations are component
  * specific. E.g. if the Style is "ocean" and the Variation is "NorthSea", than the resources are
  * given the names suffixed with "_ocean_NorthSea".
- * 
+ *
  * <li><b>AttributeModifiers </b>- You can add one or more {@link AttributeModifier}s to any
  * component if you need to programmatically manipulate attributes of the markup tag to which a
  * Component is attached.
- * 
+ *
  * <li><b>Application, ApplicationSettings and ApplicationPages </b>- The getApplication() method
  * provides convenient access to the Application for a Component via getSession().getApplication().
  * The getApplicationSettings() method is equivalent to getApplication().getSettings(). The
  * getApplicationPages is equivalent to getApplication().getPages().
- * 
+ *
  * <li><b>Feedback Messages </b>- The {@link Component#debug(String)},
  * {@link Component#info(String)}, {@link Component#warn(String)},
  * {@link Component#error(java.io.Serializable)} and {@link Component#fatal(String)} methods
  * associate feedback messages with a Component. It is generally not necessary to use these methods
  * directly since Wicket validators automatically register feedback messages on Components. Any
  * feedback message for a given Component can be retrieved with {@link Component#getFeedbackMessage}.
- * 
+ *
  * <li><b>Page Factory </b>- It is possible to change the way that Pages are constructed by
  * overriding the {@link Component#getPageFactory()} method, returning your own implementation of
  * {@link org.apache.wicket.IPageFactory}.
- * 
+ *
  * <li><b>Versioning </b>- Pages are the unit of versioning in Wicket, but fine-grained control of
  * which Components should participate in versioning is possible via the
  * {@link Component#setVersioned(boolean)} method. The versioning participation of a given Component
  * can be retrieved with {@link Component#isVersioned()}.
- * 
+ *
  * <li><b>AJAX support</b>- Components can be re-rendered after the whole Page has been rendered
  * at least once by calling doRender().
- * 
+ *
  * @author Jonathan Locke
  * @author Chris Turner
  * @author Eelco Hillenius
@@ -212,7 +212,7 @@
 
 		/**
 		 * Construct.
-		 * 
+		 *
 		 * @param model
 		 */
 		public ComponentModelChange(IModel model)
@@ -261,7 +261,7 @@
 
 		/**
 		 * Called at each component in a traversal.
-		 * 
+		 *
 		 * @param component
 		 *            The component
 		 * @return CONTINUE_TRAVERSAL (null) if the traversal should continue, or a non-null return
@@ -273,7 +273,7 @@
 
 	/**
 	 * Change object for undoing addition of behavior
-	 * 
+	 *
 	 * @author Igor Vaynberg (ivaynberg)
 	 */
 	private final class AddedBehaviorChange extends Change
@@ -285,7 +285,7 @@
 
 		/**
 		 * Construct.
-		 * 
+		 *
 		 * @param behavior
 		 */
 		public AddedBehaviorChange(IBehavior behavior)
@@ -307,7 +307,7 @@
 
 	/**
 	 * Undo change for component border property
-	 * 
+	 *
 	 * @author ivaynberg
 	 */
 	private class ComponentBorderChange extends Change
@@ -325,7 +325,7 @@
 
 	/**
 	 * Change object for undoing removal of behavior
-	 * 
+	 *
 	 * @author Igor Vaynberg (ivaynberg)
 	 */
 	private final class RemovedBehaviorChange extends Change
@@ -337,7 +337,7 @@
 
 		/**
 		 * Construct.
-		 * 
+		 *
 		 * @param behavior
 		 */
 		public RemovedBehaviorChange(IBehavior behavior)
@@ -373,7 +373,7 @@
 
 		/**
 		 * Construct.
-		 * 
+		 *
 		 * @param component
 		 */
 		EnabledChange(final Component component)
@@ -414,7 +414,7 @@
 
 		/**
 		 * Construct.
-		 * 
+		 *
 		 * @param component
 		 */
 		VisibilityChange(final Component component)
@@ -453,12 +453,12 @@
 	 * When a component is not allowed to be enabled (in effect disabled through the implementation
 	 * of this interface), Wicket will try to prevent model updates too. This is not completely fail
 	 * safe, as constructs like:
-	 * 
+	 *
 	 * <pre>
 	 * User u = (User)getModelObject();
 	 * u.setName(&quot;got you there!&quot;);
 	 * </pre>
-	 * 
+	 *
 	 * can't be prevented. Indeed it can be argued that any model protection is best dealt with in
 	 * your model objects to be completely secured. Wicket will catch all normal framework-directed
 	 * use though.
@@ -854,7 +854,7 @@
 	/**
 	 * Constructor. All components have names. A component's id cannot be null. This is the minimal
 	 * constructor of component. It does not register a model.
-	 * 
+	 *
 	 * @param id
 	 *            The non-null id of this component
 	 * @throws WicketRuntimeException
@@ -876,12 +876,12 @@
 	/**
 	 * Constructor. All components have names. A component's id cannot be null. This constructor
 	 * includes a model.
-	 * 
+	 *
 	 * @param id
 	 *            The non-null id of this component
 	 * @param model
 	 *            The component's model
-	 * 
+	 *
 	 * @throws WicketRuntimeException
 	 *             Thrown if the component has been given a null id.
 	 */
@@ -893,13 +893,13 @@
 
 	/**
 	 * Adds an behavior modifier to the component.
-	 * 
+	 *
 	 * <p>
 	 * Note: this method is override to enable users to do things like discussed in <a
 	 * href="http://www.nabble.com/Why-add%28IBehavior%29-is-final--tf2598263.html#a7248198">this
 	 * thread</a>.
 	 * </p>
-	 * 
+	 *
 	 * @param behavior
 	 *            The behavior modifier to be added
 	 * @return this (to allow method call chaining)
@@ -1034,7 +1034,7 @@
 			if (feedbacks == null)
 			{
 				feedbacks = new ArrayList();
-				getRequestCycle().setMetaData(FEEDBACK_LIST, (Serializable)feedbacks);
+				getRequestCycle().setMetaData(FEEDBACK_LIST, feedbacks);
 			}
 			feedbacks.add(this);
 		}
@@ -1042,7 +1042,7 @@
 
 	/**
 	 * Redirects to any intercept page previously specified by a call to redirectToInterceptPage.
-	 * 
+	 *
 	 * @return True if an original destination was redirected to
 	 * @see Component#redirectToInterceptPage(Page)
 	 */
@@ -1053,7 +1053,7 @@
 
 	/**
 	 * Registers a debug feedback message for this component
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -1103,7 +1103,7 @@
 
 	/**
 	 * THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
-	 * 
+	 *
 	 * Traverses all behaviors and calls detachModel() on them. This is needed to cleanup behavior
 	 * after render. This method is necessary for {@link AjaxRequestTarget} to be able to cleanup
 	 * component's behaviors after header contribution has been done (which is separated from
@@ -1147,7 +1147,7 @@
 
 	/**
 	 * Registers an error feedback message for this component
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -1159,7 +1159,7 @@
 
 	/**
 	 * Registers an fatal error feedback message for this component
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -1171,7 +1171,7 @@
 
 	/**
 	 * Finds the first container parent of this component of the given class.
-	 * 
+	 *
 	 * @param c
 	 *            MarkupContainer class to search for
 	 * @return First container parent that is an instance of the given class, or null if none can be
@@ -1220,7 +1220,7 @@
 
 	/**
 	 * Gets interface to application that this component is a part of.
-	 * 
+	 *
 	 * @return The application associated with the session that this component is in.
 	 * @see Application
 	 */
@@ -1232,7 +1232,7 @@
 	/**
 	 * Gets the currently coupled {@link IBehavior}s as a unmodifiable list. Returns an empty list
 	 * rather than null if there are no behaviors coupled to this component.
-	 * 
+	 *
 	 * @return The currently coupled behaviors as a unmodifiable list
 	 */
 	public final List/* <IBehavior> */getBehaviors()
@@ -1268,10 +1268,10 @@
 
 	/**
 	 * Gets the converter that should be used by this component.
-	 * 
+	 *
 	 * @param type
 	 *            The type to convert to
-	 * 
+	 *
 	 * @return The converter that should be used by this component
 	 */
 	public IConverter getConverter(Class/* <?> */type)
@@ -1281,7 +1281,7 @@
 
 	/**
 	 * Gets whether model strings should be escaped.
-	 * 
+	 *
 	 * @return Returns whether model strings should be escaped
 	 */
 	public final boolean getEscapeModelStrings()
@@ -1299,7 +1299,7 @@
 
 	/**
 	 * Gets the id of this component.
-	 * 
+	 *
 	 * @return The id of this component
 	 */
 	public String getId()
@@ -1318,7 +1318,7 @@
 	/**
 	 * Gets the locale for this component. By default, it searches its parents for a locale. If no
 	 * parents (it's a recursive search) returns a locale, it gets one from the session.
-	 * 
+	 *
 	 * @return The locale to be used for this component
 	 * @see Session#getLocale()
 	 */
@@ -1334,7 +1334,7 @@
 
 	/**
 	 * Convenience method to provide easy access to the localizer object within any component.
-	 * 
+	 *
 	 * @return The localizer object
 	 */
 	public final Localizer getLocalizer()
@@ -1344,14 +1344,14 @@
 
 	/**
 	 * THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
-	 * 
+	 *
 	 * Get a copy of the markup's attributes which are associated with the component.
 	 * <p>
 	 * Modifications to the map returned don't change the tags attributes. It is just a copy.
 	 * <p>
 	 * Note: The component must have been added (directly or indirectly) to a container with an
 	 * associated markup file (Page, Panel or Border).
-	 * 
+	 *
 	 * @return markup attributes
 	 */
 	public final ValueMap getMarkupAttributes()
@@ -1397,11 +1397,11 @@
 	 * <p>
 	 * Note: This method should only be called after the component or its parent have been added to
 	 * the page.
-	 * 
+	 *
 	 * @param createIfDoesNotExist
 	 *            When there is no existing markup id, determines whether it should be generated or
 	 *            whether <code>null</code> should be returned.
-	 * 
+	 *
 	 * @return markup id of the component
 	 */
 
@@ -1472,7 +1472,7 @@
 	 * <p>
 	 * Note: This method should only be called after the component or its parent have been added to
 	 * the page.
-	 * 
+	 *
 	 * @return markup id of the component
 	 */
 	public String getMarkupId()
@@ -1482,7 +1482,7 @@
 
 	/**
 	 * Gets metadata for this component using the given key.
-	 * 
+	 *
 	 * @param key
 	 *            The key for the data
 	 * @return The metadata or null of no metadata was found for the given key
@@ -1490,7 +1490,7 @@
 	 */
 	public final Serializable getMetaData(final MetaDataKey key)
 	{
-		return key.get(getMetaData());
+		return (Serializable)key.get(getMetaData());
 	}
 
 	private MetaDataEntry[] getMetaData()
@@ -1520,7 +1520,7 @@
 
 	/**
 	 * Gets the model. It returns the object that wraps the backing model.
-	 * 
+	 *
 	 * @return The model
 	 */
 	public final IModel getModel()
@@ -1539,7 +1539,7 @@
 
 	/**
 	 * Gets the backing model object; this is shorthand for getModel().getObject().
-	 * 
+	 *
 	 * @return The backing model object
 	 */
 	public final Object getModelObject()
@@ -1562,10 +1562,10 @@
 	 * sensitive chars are escaped but not all none-ascii chars. Proper HTML encoding should be used
 	 * instead. In case you really need a fully escaped model string you may call
 	 * {@link Strings#escapeMarkup(String, boolean, boolean)} on the model string returned.
-	 * 
+	 *
 	 * @see Strings#escapeMarkup(String, boolean, boolean)
 	 * @see #getEscapeModelStrings()
-	 * 
+	 *
 	 * @return Model object for this component as a string
 	 */
 	public final String getModelObjectAsString()
@@ -1579,10 +1579,10 @@
 	 * sensitive chars are escaped but not all none-ascii chars. Proper HTML encoding should be used
 	 * instead. In case you really need a fully escaped model string you may call
 	 * {@link Strings#escapeMarkup(String, boolean, boolean)} on the model string returned.
-	 * 
+	 *
 	 * @see Strings#escapeMarkup(String, boolean, boolean)
 	 * @see #getEscapeModelStrings()
-	 * 
+	 *
 	 * @param modelObject
 	 *            Model object to convert to string
 	 * @return The string
@@ -1614,7 +1614,7 @@
 	/**
 	 * Gets whether or not component will output id attribute into the markup. id attribute will be
 	 * set to the value returned from {@link Component#getMarkupId()}.
-	 * 
+	 *
 	 * @return whether or not component will output id attribute into the markup
 	 */
 	public final boolean getOutputMarkupId()
@@ -1624,7 +1624,7 @@
 
 	/**
 	 * Gets whether or not an invisible component will render a placeholder tag.
-	 * 
+	 *
 	 * @return true if a placeholder tag should be rendered
 	 */
 	public final boolean getOutputMarkupPlaceholderTag()
@@ -1634,7 +1634,7 @@
 
 	/**
 	 * Gets the page holding this component.
-	 * 
+	 *
 	 * @return The page holding this component
 	 * @throws IllegalStateException
 	 *             Thrown if component is not yet attached to a Page.
@@ -1664,7 +1664,7 @@
 
 	/**
 	 * Gets the path to this component relative to the page it is in.
-	 * 
+	 *
 	 * @return The path to this component relative to the page it is in
 	 */
 	public final String getPageRelativePath()
@@ -1674,7 +1674,7 @@
 
 	/**
 	 * Gets any parent container, or null if there is none.
-	 * 
+	 *
 	 * @return Any parent container, or null if there is none
 	 */
 	public final MarkupContainer getParent()
@@ -1684,7 +1684,7 @@
 
 	/**
 	 * Gets this component's path.
-	 * 
+	 *
 	 * @return Colon separated path to this component in the component hierarchy
 	 */
 	public final String getPath()
@@ -1704,7 +1704,7 @@
 	/**
 	 * If false the component's tag will be printed as well as its body (which is default). If true
 	 * only the body will be printed, but not the component's tag.
-	 * 
+	 *
 	 * @return If true, the component tag will not be printed
 	 */
 	public final boolean getRenderBodyOnly()
@@ -1729,7 +1729,7 @@
 
 	/**
 	 * Gets the active request cycle for this component
-	 * 
+	 *
 	 * @return The request cycle
 	 */
 	public final RequestCycle getRequestCycle()
@@ -1747,7 +1747,7 @@
 
 	/**
 	 * Gets the current Session object.
-	 * 
+	 *
 	 * @return The Session that this component is in
 	 */
 	public Session getSession()
@@ -1816,9 +1816,9 @@
 
 	/**
 	 * Gets the style of this component (see {@link org.apache.wicket.Session}).
-	 * 
+	 *
 	 * @return The style of this component.
-	 * 
+	 *
 	 * @see org.apache.wicket.Session
 	 * @see org.apache.wicket.Session#getStyle()
 	 */
@@ -1844,7 +1844,7 @@
 	 * Gets the variation string of this component that will be used to look up markup for this
 	 * component. Subclasses can override this method to define by an instance what markup variation
 	 * should be picked up. By default it will return null or the value of a parent.
-	 * 
+	 *
 	 * @return The variation of this component.
 	 */
 	public String getVariation()
@@ -1859,7 +1859,7 @@
 
 	/**
 	 * Gets whether this component was rendered at least once.
-	 * 
+	 *
 	 * @return true if the component has been rendered before, false if it is merely constructed
 	 */
 	public final boolean hasBeenRendered()
@@ -1885,7 +1885,7 @@
 
 	/**
 	 * Registers an informational feedback message for this component
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -1915,7 +1915,7 @@
 
 	/**
 	 * Authorizes an action for a component.
-	 * 
+	 *
 	 * @param action
 	 *            The action to authorize
 	 * @return True if the action is allowed
@@ -1934,7 +1934,7 @@
 
 	/**
 	 * Returns true if this component is an ancestor of the given component
-	 * 
+	 *
 	 * @param component
 	 *            The component to check
 	 * @return True if the given component has this component as an ancestor
@@ -1971,7 +1971,7 @@
 	 * Gets whether this component is enabled. Specific components may decide to implement special
 	 * behavior that uses this property, like web form components that add a disabled='disabled'
 	 * attribute when enabled is false.
-	 * 
+	 *
 	 * @return Whether this component is enabled.
 	 */
 	public boolean isEnabled()
@@ -1982,7 +1982,7 @@
 	/**
 	 * Checks the security strategy if the {@link Component#RENDER} action is allowed on this
 	 * component
-	 * 
+	 *
 	 * @return ture if {@link Component#RENDER} action is allowed, false otherwise
 	 */
 	public final boolean isRenderAllowed()
@@ -1994,7 +1994,7 @@
 	 * Returns if the component is stateless or not. It checks the stateless hint if that is false
 	 * it returns directly false. If that is still true it checks all its behaviors if they can be
 	 * stateless.
-	 * 
+	 *
 	 * @return whether the component is stateless.
 	 */
 	public final boolean isStateless()
@@ -2050,7 +2050,7 @@
 	 * method, it is a good idea to keep it cheap in terms of processing. Alternatively, you can
 	 * call {@link #setVisible(boolean)}.
 	 * <p>
-	 * 
+	 *
 	 * @return True if component and any children are visible
 	 */
 	public boolean isVisible()
@@ -2060,7 +2060,7 @@
 
 	/**
 	 * Checks if the component itself and all its parents are visible.
-	 * 
+	 *
 	 * @return true if the component and all its parents are visible.
 	 */
 	public final boolean isVisibleInHierarchy()
@@ -2118,7 +2118,7 @@
 
 	/**
 	 * Creates a new page using the component's page factory
-	 * 
+	 *
 	 * @param c
 	 *            The class of page to create
 	 * @return The new page
@@ -2130,7 +2130,7 @@
 
 	/**
 	 * Creates a new page using the component's page factory
-	 * 
+	 *
 	 * @param c
 	 *            The class of page to create
 	 * @param parameters
@@ -2172,10 +2172,10 @@
 	 * is saved for future use by method continueToOriginalDestination(); Only use this method when
 	 * you plan to continue to the current url at some later time; otherwise just use
 	 * setResponsePage or - when you are in a constructor or checkAccessMethod, call redirectTo.
-	 * 
+	 *
 	 * @param page
 	 *            The sign in page
-	 * 
+	 *
 	 * @see Component#continueToOriginalDestination()
 	 */
 	public final void redirectToInterceptPage(final Page page)
@@ -2199,10 +2199,10 @@
 
 	/**
 	 * Removes behavior from component
-	 * 
+	 *
 	 * @param behavior
 	 *            behavior to remove
-	 * 
+	 *
 	 * @return this (to allow method call chaining)
 	 */
 	public Component remove(final IBehavior behavior)
@@ -2267,7 +2267,7 @@
 	 * <p>
 	 * For component level re-render (e.g. AJAX) please call {@link #renderComponent(MarkupStream)}.
 	 * Though render() does seem to work, it will fail for panel children.
-	 * 
+	 *
 	 * @param markupStream
 	 */
 	public final void render(final MarkupStream markupStream)
@@ -2426,7 +2426,7 @@
 	 * Renders the component at the current position in the given markup stream. The method
 	 * onComponentTag() is called to allow the component to mutate the start tag. The method
 	 * onComponentTagBody() is then called to permit the component to render its body.
-	 * 
+	 *
 	 * @param markupStream
 	 *            The markup stream
 	 */
@@ -2531,7 +2531,7 @@
 	 * NOT intended for overriding by framework clients. Rather, use
 	 * {@link IHeaderContributor#renderHead(org.apache.wicket.markup.html.IHeaderResponse)}
 	 * </p>
-	 * 
+	 *
 	 * @param container
 	 *            The HtmlHeaderContainer
 	 */
@@ -2567,9 +2567,9 @@
 	 * as this component. This method serves as a shortcut to
 	 * <code>this.getParent().replace(replacement)</code> and provides a better context for
 	 * errors.
-	 * 
+	 *
 	 * @since 1.2.1
-	 * 
+	 *
 	 * @param replacement
 	 *            component to replace this one
 	 */
@@ -2626,7 +2626,7 @@
 	/**
 	 * Assigns a component border to this component. If called with <code>null</code> any previous
 	 * border will be cleared.
-	 * 
+	 *
 	 * @param border
 	 *            component border to assign, or <code>null</code> to clear any previous
 	 * @return component for chaining
@@ -2647,7 +2647,7 @@
 	 * attribute when enabled is false. If it is not enabled, it will not be allowed to call any
 	 * listener method on it (e.g. Link.onClick) and the model object will be protected (for the
 	 * common use cases, not for programmer's misuse)
-	 * 
+	 *
 	 * @param enabled
 	 *            whether this component is enabled
 	 * @return This
@@ -2675,7 +2675,7 @@
 
 	/**
 	 * Sets whether model strings should be escaped.
-	 * 
+	 *
 	 * @param escapeMarkup
 	 *            True is model strings should be escaped
 	 * @return This
@@ -2712,9 +2712,9 @@
 	 * <p>
 	 * If null is passed in the user defined value is cleared and markup id value will fall back on
 	 * automatically generated value
-	 * 
+	 *
 	 * @see #getMarkupId()
-	 * 
+	 *
 	 * @param markupId
 	 *            markup id value or null to clear any previous user defined value
 	 */
@@ -2732,7 +2732,7 @@
 	 * Sets the metadata for this component using the given key. If the metadata object is not of
 	 * the correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
-	 * 
+	 *
 	 * @param key
 	 *            The singleton key for the metadata
 	 * @param object
@@ -2773,7 +2773,7 @@
 	 * WARNING: DO NOT OVERRIDE THIS METHOD UNLESS YOU HAVE A VERY GOOD REASON FOR IT. OVERRIDING
 	 * THIS MIGHT OPEN UP SECURITY LEAKS AND BREAK BACK-BUTTON SUPPORT.
 	 * </p>
-	 * 
+	 *
 	 * @param model
 	 *            The model
 	 * @return This
@@ -2847,7 +2847,7 @@
 
 	/**
 	 * Sets the backing model object; shorthand for getModel().setObject(object).
-	 * 
+	 *
 	 * @param object
 	 *            The object to set
 	 * @return This
@@ -2883,13 +2883,13 @@
 	/**
 	 * Sets whether or not component will output id attribute into the markup. id attribute will be
 	 * set to the value returned from {@link Component#getMarkupId()}.
-	 * 
+	 *
 	 * @param output
 	 *            True if the component will out the id attribute into markup. Please note that the
 	 *            default behavior is to use the same id as the component. This means that your
 	 *            component must begin with [a-zA-Z] in order to generate a valid markup id
 	 *            according to: http://www.w3.org/TR/html401/types.html#type-name
-	 * 
+	 *
 	 * @return this for chaining
 	 */
 	public final Component setOutputMarkupId(final boolean output)
@@ -2902,15 +2902,15 @@
 	 * Render a placeholder tag when the component is not visible. The tag is of form:
 	 * &lt;componenttag style="display:none;" id="componentid"/&gt;. This method will also call
 	 * <code>setOutputMarkupId(true)</code>.
-	 * 
+	 *
 	 * This is useful, for example, in ajax situations where the component starts out invisible and
 	 * then becomes visible through an ajax update. With a placeholder tag already in the markup you
 	 * do not need to repaint this component's parent, instead you can repaint the component
 	 * directly.
-	 * 
+	 *
 	 * When this method is called with parameter <code>false</code> the outputmarkupid flag is not
 	 * reverted to false.
-	 * 
+	 *
 	 * @param outputTag
 	 * @return this for chaining
 	 */
@@ -2946,7 +2946,7 @@
 	/**
 	 * If false the component's tag will be printed as well as its body (which is default). If true
 	 * only the body will be printed, but not the component's tag.
-	 * 
+	 *
 	 * @param renderTag
 	 *            If true, the component tag will not be printed
 	 * @return This
@@ -2959,7 +2959,7 @@
 
 	/**
 	 * Sets the page that will respond to this request
-	 * 
+	 *
 	 * @param cls
 	 *            The response page class
 	 * @see RequestCycle#setResponsePage(Class)
@@ -2972,7 +2972,7 @@
 
 	/**
 	 * Sets the page class and its parameters that will respond to this request
-	 * 
+	 *
 	 * @param cls
 	 *            The response page class
 	 * @param parameters
@@ -2986,7 +2986,7 @@
 
 	/**
 	 * Sets the page that will respond to this request
-	 * 
+	 *
 	 * @param page
 	 *            The response page
 	 * @see RequestCycle#setResponsePage(Page)
@@ -3010,7 +3010,7 @@
 
 	/**
 	 * Sets whether this component and any children are visible.
-	 * 
+	 *
 	 * @param visible
 	 *            True if this component and any children should be visible
 	 * @return This
@@ -3031,7 +3031,7 @@
 
 	/**
 	 * Gets the string representation of this component.
-	 * 
+	 *
 	 * @return The path to this component
 	 */
 	public String toString()
@@ -3082,9 +3082,9 @@
 	 * Returns a bookmarkable URL that references a given page class using a given set of page
 	 * parameters. Since the URL which is returned contains all information necessary to instantiate
 	 * and render the page, it can be stored in a user's browser as a stable bookmark.
-	 * 
+	 *
 	 * @see RequestCycle#urlFor(IPageMap, Class, PageParameters)
-	 * 
+	 *
 	 * @param pageClass
 	 *            Class of page
 	 * @param parameters
@@ -3099,7 +3099,7 @@
 	/**
 	 * Gets a URL for the listener interface on a behavior (e.g. IBehaviorListener on
 	 * AjaxPagingNavigationBehavior).
-	 * 
+	 *
 	 * @param behaviour
 	 *            The behavior that the URL should point to
 	 * @param listener
@@ -3116,17 +3116,17 @@
 	 * Returns a bookmarkable URL that references a given page class using a given set of page
 	 * parameters. Since the URL which is returned contains all information necessary to instantiate
 	 * and render the page, it can be stored in a user's browser as a stable bookmark.
-	 * 
+	 *
 	 * @see RequestCycle#urlFor(IPageMap, Class, PageParameters)
-	 * 
+	 *
 	 * @param pageMap
 	 *            Page map to use
 	 * @param pageClass
 	 *            Class of page
 	 * @param parameters
 	 *            Parameters to page
-	 * 
-	 * 
+	 *
+	 *
 	 * @return Bookmarkable URL to page
 	 */
 	public final CharSequence urlFor(final IPageMap pageMap, final Class pageClass,
@@ -3137,12 +3137,12 @@
 
 	/**
 	 * Returns a URL that references the given request target.
-	 * 
+	 *
 	 * @see RequestCycle#urlFor(IRequestTarget)
-	 * 
+	 *
 	 * @param requestTarget
 	 *            the request target to reference
-	 * 
+	 *
 	 * @return a URL that references the given request target
 	 */
 	public final CharSequence urlFor(final IRequestTarget requestTarget)
@@ -3152,7 +3152,7 @@
 
 	/**
 	 * Gets a URL for the listener interface (e.g. ILinkListener).
-	 * 
+	 *
 	 * @param listener
 	 *            The listener interface that the URL should call
 	 * @return The URL
@@ -3164,9 +3164,9 @@
 
 	/**
 	 * Returns a URL that references a shared resource through the provided resource reference.
-	 * 
+	 *
 	 * @see RequestCycle#urlFor(ResourceReference)
-	 * 
+	 *
 	 * @param resourceReference
 	 *            The resource reference
 	 * @return The url for the shared resource
@@ -3179,7 +3179,7 @@
 	/**
 	 * Traverses all parent components of the given class in this container, calling the visitor's
 	 * visit method at each one.
-	 * 
+	 *
 	 * @param c
 	 *            Class
 	 * @param visitor
@@ -3212,7 +3212,7 @@
 
 	/**
 	 * Registers a warning feedback message for this component.
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -3265,7 +3265,7 @@
 
 	/**
 	 * Adds state change to page.
-	 * 
+	 *
 	 * @param change
 	 *            The change
 	 */
@@ -3281,7 +3281,7 @@
 
 	/**
 	 * Checks whether the given type has the expected name.
-	 * 
+	 *
 	 * @param tag
 	 *            The tag to check
 	 * @param name
@@ -3301,7 +3301,7 @@
 
 	/**
 	 * Checks that a given tag has a required attribute value.
-	 * 
+	 *
 	 * @param tag
 	 *            The tag
 	 * @param key
@@ -3329,7 +3329,7 @@
 	/**
 	 * Checks whether the hierarchy may be changed at all, and throws an exception if this is not
 	 * the case.
-	 * 
+	 *
 	 * @param component
 	 *            the component which is about to be added or removed
 	 */
@@ -3363,7 +3363,7 @@
 
 	/**
 	 * Prefixes an exception message with useful information about this. component.
-	 * 
+	 *
 	 * @param message
 	 *            The message
 	 * @return The modified message
@@ -3375,7 +3375,7 @@
 
 	/**
 	 * Finds the markup stream for this component.
-	 * 
+	 *
 	 * @return The markup stream for this component. Since a Component cannot have a markup stream,
 	 *         we ask this component's parent to search for it.
 	 */
@@ -3393,7 +3393,7 @@
 	/**
 	 * If this Component is a Page, returns self. Otherwise, searches for the nearest Page parent in
 	 * the component hierarchy. If no Page parent can be found, null is returned.
-	 * 
+	 *
 	 * @return The Page or null if none can be found
 	 */
 	protected final Page findPage()
@@ -3406,10 +3406,10 @@
 	 * Gets the subset of the currently coupled {@link IBehavior}s that are of the provided type as
 	 * a unmodifiable list or null if there are no behaviors attached. Returns an empty list rather
 	 * than null if there are no behaviors coupled to this component.
-	 * 
+	 *
 	 * @param type
 	 *            The type or null for all
-	 * 
+	 *
 	 * @return The subset of the currently coupled behaviors that are of the provided type as a
 	 *         unmodifiable list or null
 	 */
@@ -3435,7 +3435,7 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
-	 * 
+	 *
 	 * @param flag
 	 *            The flag to test
 	 * @return True if the flag is set
@@ -3447,7 +3447,7 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
-	 * 
+	 *
 	 * @param flag
 	 *            The flag to test
 	 * @return True if the flag is set
@@ -3459,7 +3459,7 @@
 
 	/**
 	 * Finds the innermost IModel object for an IModel that might contain nested IModel(s).
-	 * 
+	 *
 	 * @param model
 	 *            The model
 	 * @return The innermost (most nested) model
@@ -3483,7 +3483,7 @@
 	 * Gets the value defaultModelComparator. Implementations of this interface can be used in the
 	 * Component.getComparator() for testing the current value of the components model data with the
 	 * new value that is given.
-	 * 
+	 *
 	 * @return the value defaultModelComparator
 	 */
 	protected IModelComparator getModelComparator()
@@ -3496,7 +3496,7 @@
 	 * stateless, otherwise the component will be treat as stateful. In order for page to be
 	 * stateless (and not to be stored in session), all components (and component behaviors) must be
 	 * stateless.
-	 * 
+	 *
 	 * @return whether the component can be stateless
 	 */
 	protected boolean getStatelessHint()
@@ -3508,7 +3508,7 @@
 	 * Called when a null model is about to be retrieved in order to allow a subclass to provide an
 	 * initial model. This gives FormComponent, for example, an opportunity to instantiate a model
 	 * on the fly using the containing Form's model.
-	 * 
+	 *
 	 * @return The model
 	 */
 	protected IModel initModel()
@@ -3542,9 +3542,9 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR OVERRIDE.
-	 * 
+	 *
 	 * Called when a request begins.
-	 * 
+	 *
 	 * @Deprecated use {@link #onBeforeRender()} instead
 	 */
 	protected final void internalOnAttach()
@@ -3553,11 +3553,11 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR OVERRIDE.
-	 * 
+	 *
 	 * Called when a request ends.
-	 * 
+	 *
 	 * @Deprecated use {@link #onBeforeRender()} instead
-	 * 
+	 *
 	 */
 	protected final void internalOnDetach()
 	{
@@ -3565,7 +3565,7 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR OVERRIDE.
-	 * 
+	 *
 	 * Called anytime a model is changed via setModel or setModelObject.
 	 */
 	protected void internalOnModelChanged()
@@ -3574,7 +3574,7 @@
 
 	/**
 	 * Convenience method that sets the attached flags.
-	 * 
+	 *
 	 * @param attached
 	 */
 	protected final void markAttached(boolean attached)
@@ -3592,7 +3592,7 @@
 
 	/**
 	 * Components are allowed to reject behavior modifiers.
-	 * 
+	 *
 	 * @param behavior
 	 * @return False, if the component should not apply this behavior
 	 */
@@ -3610,7 +3610,7 @@
 
 	/**
 	 * If true, all attribute modifiers will be ignored
-	 * 
+	 *
 	 * @return True, if attribute modifiers are to be ignored
 	 */
 	protected final boolean isIgnoreAttributeModifier()
@@ -3643,7 +3643,7 @@
 	 * <p>
 	 * If you need to get notification when page is taken out of Session (before calling the event
 	 * listener), you can use the {@link Page#onPageAttached()} method.
-	 * 
+	 *
 	 * @deprecated
 	 */
 	protected final void onAttach()
@@ -3656,11 +3656,11 @@
 	 * <p>
 	 * *NOTE* If you override this, you *must* call super.onBeforeRender() within your
 	 * implementation.
-	 * 
+	 *
 	 * Because this method is responsible for cascading {@link #onBeforeRender()} call to its
 	 * children it is strongly recommended that super call is made at the end of the override.
 	 * </p>
-	 * 
+	 *
 	 * @see Component#callOnBeforeRenderIfNotVisible()
 	 */
 	protected void onBeforeRender()
@@ -3673,10 +3673,10 @@
 	/**
 	 * Override this method if you want onBeforeRender to be called even when your component is not
 	 * visible. default this returns false.
-	 * 
+	 *
 	 * @return boolean, if true then onBeforeRender is called even for none visible components,
 	 *         default false.
-	 * 
+	 *
 	 * @see Component#onBeforeRender()
 	 */
 	protected boolean callOnBeforeRenderIfNotVisible()
@@ -3695,7 +3695,7 @@
 
 	/**
 	 * Processes the component tag.
-	 * 
+	 *
 	 * @param tag
 	 *            Tag to modify
 	 */
@@ -3713,7 +3713,7 @@
 
 	/**
 	 * Processes the body.
-	 * 
+	 *
 	 * @param markupStream
 	 *            The markup stream
 	 * @param openTag
@@ -3725,11 +3725,11 @@
 
 	/**
 	 * Called to allow a component to detach resources after use.
-	 * 
+	 *
 	 * Overrides of this method MUST call the super implementation, the most logical place to do
 	 * this is the last line of the override method.
-	 * 
-	 * 
+	 *
+	 *
 	 */
 	protected void onDetach()
 	{
@@ -3762,7 +3762,7 @@
 
 	/**
 	 * Implementation that renders this component.
-	 * 
+	 *
 	 * @since Wicket 1.2
 	 * @param markupStream
 	 */
@@ -3772,7 +3772,7 @@
 	 * Writes a simple tag out to the response stream. Any components that might be referenced by
 	 * the tag are ignored. Also undertakes any tag attribute modifications if they have been added
 	 * to the component.
-	 * 
+	 *
 	 * @param tag
 	 *            The tag to write
 	 */
@@ -3823,7 +3823,7 @@
 
 	/**
 	 * Replaces the body with the given one.
-	 * 
+	 *
 	 * @param markupStream
 	 *            The markup stream to replace the tag body in
 	 * @param tag
@@ -3888,7 +3888,7 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
-	 * 
+	 *
 	 * @param flag
 	 *            The flag to set
 	 * @param set
@@ -3908,7 +3908,7 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
-	 * 
+	 *
 	 * @param flag
 	 *            The flag to set
 	 * @param set
@@ -3921,7 +3921,7 @@
 
 	/**
 	 * If true, all attribute modifiers will be ignored
-	 * 
+	 *
 	 * @param ignore
 	 *            If true, all attribute modifiers will be ignored
 	 * @return This
@@ -3935,10 +3935,10 @@
 	/**
 	 * The markup stream will be assigned to the component at the beginning of the component render
 	 * phase. It is temporary working variable only.
-	 * 
+	 *
 	 * @see #findMarkupStream()
 	 * @see MarkupContainer#getMarkupStream()
-	 * 
+	 *
 	 * @param markupStream
 	 *            The current markup stream which should be applied by the component to render
 	 *            itself
@@ -3973,7 +3973,7 @@
 
 	/**
 	 * Gets the component at the given path.
-	 * 
+	 *
 	 * @param path
 	 *            Path to component
 	 * @return The component at the path
@@ -3993,7 +3993,7 @@
 	/**
 	 * Checks whether or not this component has a markup id value generated, whether it is automatic
 	 * or user defined
-	 * 
+	 *
 	 * @return true if this component has a markup id value generated
 	 */
 	final boolean hasMarkupIdMetaData()
@@ -4044,7 +4044,7 @@
 
 	/**
 	 * Renders the close tag at the current position in the markup stream.
-	 * 
+	 *
 	 * @param markupStream
 	 *            the markup stream
 	 * @param openTag
@@ -4094,7 +4094,7 @@
 	/**
 	 * Sets the id of this component. This method is private because the only time a component's id
 	 * can be set is in its constructor.
-	 * 
+	 *
 	 * @param id
 	 *            The non-null id of this component
 	 */
@@ -4109,7 +4109,7 @@
 
 	/**
 	 * Sets the parent of a component.
-	 * 
+	 *
 	 * @param parent
 	 *            The parent container
 	 */
@@ -4124,7 +4124,7 @@
 
 	/**
 	 * Sets the render allowed flag.
-	 * 
+	 *
 	 * @param renderAllowed
 	 */
 	final void setRenderAllowed(boolean renderAllowed)
@@ -4134,7 +4134,7 @@
 
 	/**
 	 * Sets the render allowed flag.
-	 * 
+	 *
 	 * Visit all this page's children (overridden in MarkupContainer) to check rendering
 	 * authorization, as appropriate. We set any result; positive or negative as a temporary boolean
 	 * in the components, and when a authorization exception is thrown it will block the rendering

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java Mon Feb 18 08:33:16 2008
@@ -16,11 +16,10 @@
  */
 package org.apache.wicket;
 
-import java.io.Serializable;
 
 /**
  * Class used for holding meta data entries.
- * 
+ *
  * @author Jonathan Locke
  */
 final class MetaDataEntry implements IClusterable
@@ -29,16 +28,16 @@
 
 	final MetaDataKey key;
 
-	Serializable object;
+	Object object;
 
 	/**
 	 * Construct.
-	 * 
+	 *
 	 * @param key
 	 *            meta data key
 	 * @param object
 	 */
-	public MetaDataEntry(MetaDataKey key, Serializable object)
+	public MetaDataEntry(MetaDataKey key, Object object)
 	{
 		this.key = key;
 		this.object = object;
@@ -50,6 +49,6 @@
 	public String toString()
 	{
 		return key + "=" + object.getClass().getName() + "@" +
-				Integer.toHexString(object.hashCode());
+			Integer.toHexString(object.hashCode());
 	}
 }

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java Mon Feb 18 08:33:16 2008
@@ -16,8 +16,6 @@
  */
 package org.apache.wicket;
 
-import java.io.Serializable;
-
 import org.apache.wicket.util.lang.Classes;
 
 /**
@@ -27,7 +25,7 @@
  * subtype. That subtype is used to test for identity when looking for the metadata because actual
  * object identity would suffer from problems under serialization. So, the correct way to declare a
  * MetaDataKey is like this: public static MetaDataKey ROLE = new MetaDataKey(Role.class) { }
- * 
+ *
  * @author Jonathan Locke
  */
 public abstract class MetaDataKey implements IClusterable
@@ -39,13 +37,13 @@
 
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param type
 	 *            The type of value stored under this key
 	 */
 	public MetaDataKey(final Class type)
 	{
-		this.typeName = type.getName();
+		typeName = type.getName();
 	}
 
 	/**
@@ -61,7 +59,7 @@
 	 *            Array of metadata to search
 	 * @return The entry value
 	 */
-	Serializable get(MetaDataEntry[] metaData)
+	Object get(MetaDataEntry[] metaData)
 	{
 		if (metaData != null)
 		{
@@ -84,7 +82,7 @@
 	 *            The object to set, null to remove
 	 * @return Any new metadata array (if it was reallocated)
 	 */
-	MetaDataEntry[] set(MetaDataEntry[] metaData, final Serializable object)
+	MetaDataEntry[] set(MetaDataEntry[] metaData, final Object object)
 	{
 		checkType(object);
 		boolean set = false;
@@ -142,7 +140,7 @@
 
 	/**
 	 * Checks the type of the given object against the type for this metadata key.
-	 * 
+	 *
 	 * @param object
 	 *            The object to check
 	 * @throws IllegalArgumentException
@@ -154,7 +152,7 @@
 		if (object != null && !clazz.isAssignableFrom(object.getClass()))
 		{
 			throw new IllegalArgumentException("MetaDataKey " + getClass() +
-					" requires argument of " + clazz + ", not " + object.getClass());
+				" requires argument of " + clazz + ", not " + object.getClass());
 		}
 	}
 

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java Mon Feb 18 08:33:16 2008
@@ -33,7 +33,7 @@
 {
 	/**
 	 * Visitor interface for visiting entries in this map
-	 * 
+	 *
 	 * @author Jonathan Locke
 	 */
 	static interface IVisitor
@@ -55,7 +55,7 @@
 	 * Gets a page map for a page map name, automatically creating the page map if it does not
 	 * exist. If you do not want the pagemap to be automatically created, you can call
 	 * Session.pageMapForName(pageMapName, false).
-	 * 
+	 *
 	 * @param pageMapName
 	 *            The name of the page map to get
 	 * @return The PageMap with the given name from the current session
@@ -77,7 +77,7 @@
 
 	/**
 	 * Constructor
-	 * 
+	 *
 	 * @param name
 	 *            The name of this page map
 	 */
@@ -115,7 +115,7 @@
 
 	/**
 	 * Redirects to any intercept page previously specified by a call to redirectToInterceptPage.
-	 * 
+	 *
 	 * @return True if an original destination was redirected to
 	 * @see PageMap#redirectToInterceptPage(Page)
 	 */
@@ -217,7 +217,7 @@
 	 * is saved exactly as it was requested for future use by continueToOriginalDestination(); Only
 	 * use this method when you plan to continue to the current URL at some later time; otherwise
 	 * just use setResponsePage or, when you are in a constructor, redirectTo.
-	 * 
+	 *
 	 * @param pageClazz
 	 *            The page clazz to temporarily redirect to
 	 */
@@ -233,7 +233,7 @@
 	 * is saved exactly as it was requested for future use by continueToOriginalDestination(); Only
 	 * use this method when you plan to continue to the current URL at some later time; otherwise
 	 * just use setResponsePage or, when you are in a constructor, redirectTo.
-	 * 
+	 *
 	 * @param page
 	 *            The page to temporarily redirect to
 	 */
@@ -351,7 +351,7 @@
 	 * Sets the metadata for this PageMap using the given key. If the metadata object is not of the
 	 * correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
-	 * 
+	 *
 	 * @param key
 	 *            The singleton key for the metadata
 	 * @param object
@@ -366,7 +366,7 @@
 
 	/**
 	 * Gets metadata for this PageMap using the given key.
-	 * 
+	 *
 	 * @param key
 	 *            The key for the data
 	 * @return The metadata or null of no metadata was found for the given key
@@ -374,7 +374,7 @@
 	 */
 	public final Serializable getMetaData(final MetaDataKey key)
 	{
-		return key.get(metaData);
+		return (Serializable)key.get(metaData);
 	}
 
 	/**

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java Mon Feb 18 08:33:16 2008
@@ -16,7 +16,6 @@
  */
 package org.apache.wicket;
 
-import java.io.Serializable;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -154,7 +153,7 @@
  * their way with continueToOriginalDestination(). These methods could also be useful in
  * "interstitial" advertising or other kinds of "intercepts".
  * <p>
- *
+ * 
  * @author Jonathan Locke
  * @author Eelco Hillenius
  * @author Igor Vaynberg (ivaynberg)
@@ -190,7 +189,7 @@
 
 	/**
 	 * Gets request cycle for calling thread.
-	 *
+	 * 
 	 * @return Request cycle for calling thread
 	 */
 	public static RequestCycle get()
@@ -203,7 +202,7 @@
 	 * as the request cycle is set to current for you in the constructor. However, if you have a <a
 	 * href="http://issues.apache.org/jira/browse/WICKET-366">very special need</a> to set it to
 	 * something else, you can expose this method.
-	 *
+	 * 
 	 * @param cycle
 	 *            The request cycle to set current
 	 */
@@ -268,7 +267,7 @@
 
 	/**
 	 * Constructor. This instance will be set as the current one for this thread.
-	 *
+	 * 
 	 * @param application
 	 *            The application
 	 * @param request
@@ -291,7 +290,7 @@
 
 	/**
 	 * Gets the application object.
-	 *
+	 * 
 	 * @return Application interface
 	 */
 	public final Application getApplication()
@@ -303,7 +302,7 @@
 	 * Gets the new agent info object for this session. This method calls
 	 * {@link Session#getClientInfo()}, which may or may not cache the client info object and
 	 * typically calls {@link #newClientInfo()} when no client info object was cached.
-	 *
+	 * 
 	 * @return the agent info object based on this request
 	 */
 	public final ClientInfo getClientInfo()
@@ -315,7 +314,7 @@
 	 * Get the original response the request was create with. Access may be necessary with the
 	 * response has temporarily being replaced but your components requires access to lets say the
 	 * cookie methods of a WebResponse.
-	 *
+	 * 
 	 * @return The original response object.
 	 */
 	public final Response getOriginalResponse()
@@ -326,7 +325,7 @@
 	/**
 	 * Any set page parameters. Typically only available when a request to a bookmarkable page with
 	 * a {@link Page#Page(PageParameters)} constructor was made.
-	 *
+	 * 
 	 * @return the page parameters or null
 	 */
 	public final PageParameters getPageParameters()
@@ -336,14 +335,14 @@
 
 	/**
 	 * Gets the processor for delegated request cycle handling.
-	 *
+	 * 
 	 * @return the processor for delegated request cycle handling
 	 */
 	public abstract IRequestCycleProcessor getProcessor();
 
 	/**
 	 * Gets whether the page for this request should be redirected.
-	 *
+	 * 
 	 * @return whether the page for this request should be redirected
 	 * @deprecated Use {@link #isRedirect()} instead
 	 */
@@ -354,7 +353,7 @@
 
 	/**
 	 * Gets the request.
-	 *
+	 * 
 	 * @return Request object
 	 */
 	public final Request getRequest()
@@ -364,7 +363,7 @@
 
 	/**
 	 * Gets the current request target. May be null.
-	 *
+	 * 
 	 * @return the current request target, null if none was set yet.
 	 */
 	public final IRequestTarget getRequestTarget()
@@ -374,7 +373,7 @@
 
 	/**
 	 * Gets the response.
-	 *
+	 * 
 	 * @return Response object
 	 */
 	public final Response getResponse()
@@ -385,7 +384,7 @@
 	/**
 	 * Gets the page that is to be rendered for this request in case the last set request target is
 	 * of type {@link PageRequestTarget}.
-	 *
+	 * 
 	 * @return the page or null
 	 */
 	public final Page getResponsePage()
@@ -405,7 +404,7 @@
 	/**
 	 * Gets the page class that is to be instantiated and rendered for this request in case the last
 	 * set request target is of type {@link BookmarkablePageRequestTarget}.
-	 *
+	 * 
 	 * @return the page class or null
 	 */
 	public final Class getResponsePageClass()
@@ -420,7 +419,7 @@
 
 	/**
 	 * Gets the session.
-	 *
+	 * 
 	 * @return Session object
 	 */
 	public final Session getSession()
@@ -442,7 +441,7 @@
 
 	/**
 	 * Gets whether the page for this request should be redirected.
-	 *
+	 * 
 	 * @return whether the page for this request should be redirected
 	 */
 	public boolean isRedirect()
@@ -454,7 +453,7 @@
 	 * Template method that is called when a runtime exception is thrown, just before the actual
 	 * handling of the runtime exception. This is called by
 	 * {@link AbstractRequestCycleProcessor#respond(RuntimeException, RequestCycle)}.
-	 *
+	 * 
 	 * @param page
 	 *            Any page context where the exception was thrown
 	 * @param e
@@ -471,7 +470,7 @@
 	 * <p>
 	 * Redirects browser to the given page. Don't use this method directly, but use
 	 * {@link #setResponsePage(Page)} instead.
-	 *
+	 * 
 	 * @param page
 	 *            The page to redirect to
 	 */
@@ -501,7 +500,7 @@
 	 * <p>
 	 * NOTE: This method is typically only used for testing purposes.
 	 * </p>
-	 *
+	 * 
 	 * @param component
 	 *            to be re-rendered
 	 */
@@ -521,7 +520,7 @@
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
 	 * <p>
 	 * Responds to a request with the request target.
-	 *
+	 * 
 	 * @param target
 	 *            request target
 	 */
@@ -541,7 +540,7 @@
 
 	/**
 	 * Permit clients like testers to examine feedback messages after processing.
-	 *
+	 * 
 	 * @param automaticallyClearFeedbackMessages
 	 *            True to automatically detach request cycle at end of processing
 	 */
@@ -554,7 +553,7 @@
 
 	/**
 	 * Sets whether the page for this request should be redirected.
-	 *
+	 * 
 	 * @param redirect
 	 *            True if the page for this request cycle should be redirected to rather than
 	 *            directly rendered.
@@ -575,7 +574,7 @@
 
 	/**
 	 * Sets the request target as the current.
-	 *
+	 * 
 	 * @param requestTarget
 	 *            the request target to set as current
 	 */
@@ -616,7 +615,7 @@
 
 	/**
 	 * Sets response.
-	 *
+	 * 
 	 * @param response
 	 *            The response
 	 * @return the original response
@@ -630,7 +629,7 @@
 
 	/**
 	 * Attempts to return name of current page map
-	 *
+	 * 
 	 * @return
 	 */
 	private String getCurrentPageMap()
@@ -654,7 +653,7 @@
 	/**
 	 * Convenience method that sets page class as the response. This will generate a redirect to the
 	 * page with a bookmarkable url
-	 *
+	 * 
 	 * @param pageClass
 	 *            The page class to render as a response
 	 */
@@ -665,7 +664,7 @@
 
 	/**
 	 * Sets the page class with optionally the page parameters as the render target of this request.
-	 *
+	 * 
 	 * @param pageClass
 	 *            The page class to render as a response
 	 * @param pageParameters
@@ -679,7 +678,7 @@
 	/**
 	 * Sets the page class with optionally the page parameters and page map name as the render
 	 * target of this request.
-	 *
+	 * 
 	 * @param pageClass
 	 *            The page class to render as a response
 	 * @param pageParameters
@@ -697,7 +696,7 @@
 
 	/**
 	 * Sets the page as the render target of this request.
-	 *
+	 * 
 	 * @param page
 	 *            The page to render as a response
 	 */
@@ -738,7 +737,7 @@
 	/**
 	 * Returns an encoded URL that references the given request target and clears the
 	 * urlForNewWindowEncoding flag.
-	 *
+	 * 
 	 * @param requestTarget
 	 *            the request target to reference
 	 * @return a URL that references the given request target
@@ -754,7 +753,7 @@
 	 * Returns a bookmarkable URL that references a given page class using a given set of page
 	 * parameters. Since the URL which is returned contains all information necessary to instantiate
 	 * and render the page, it can be stored in a user's browser as a stable bookmark.
-	 *
+	 * 
 	 * @param pageClass
 	 *            Class of page
 	 * @param parameters
@@ -771,7 +770,7 @@
 	 * URL is requested from the server at a later time, the interface on the behavior will be
 	 * called. A URL returned by this method will not be stable across sessions and cannot be
 	 * bookmarked by a user.
-	 *
+	 * 
 	 * @param component
 	 *            The component to reference
 	 * @param behaviour
@@ -812,7 +811,7 @@
 	 * Returns a URL that references a given interface on a component. When the URL is requested
 	 * from the server at a later time, the interface will be called. A URL returned by this method
 	 * will not be stable across sessions and cannot be bookmarked by a user.
-	 *
+	 * 
 	 * @param component
 	 *            The component to reference
 	 * @param listener
@@ -893,7 +892,7 @@
 
 	/**
 	 * Url encodes value using UTF-8
-	 *
+	 * 
 	 * @param value
 	 *            value to encode
 	 * @return encoded value
@@ -907,7 +906,7 @@
 	 * Returns a URL that references a given interface on a component. When the URL is requested
 	 * from the server at a later time, the interface will be called. A URL returned by this method
 	 * will not be stable across sessions and cannot be bookmarked by a user.
-	 *
+	 * 
 	 * @param component
 	 *            The component to reference
 	 * @param listener
@@ -924,7 +923,7 @@
 	 * Returns a bookmarkable URL that references a given page class using a given set of page
 	 * parameters. Since the URL which is returned contains all information necessary to instantiate
 	 * and render the page, it can be stored in a user's browser as a stable bookmark.
-	 *
+	 * 
 	 * @param pageMap
 	 *            Pagemap to use. If null is passed the default page map will be used
 	 * @param pageClass
@@ -943,7 +942,7 @@
 
 	/**
 	 * Returns a URL that references the given request target.
-	 *
+	 * 
 	 * @param requestTarget
 	 *            the request target to reference
 	 * @return a URL that references the given request target
@@ -957,7 +956,7 @@
 	 * Returns a URL that references the given page. It also {@link Session#touch(Page) touches} the
 	 * page in the session so that it is put in the front of the page stack. Use this method only if
 	 * you plan to use it the next request.
-	 *
+	 * 
 	 * @param page
 	 *            The page
 	 * @return The url pointing to the provided page
@@ -971,7 +970,7 @@
 
 	/**
 	 * Returns a URL that references a shared resource through the provided resource reference.
-	 *
+	 * 
 	 * @param resourceReference
 	 *            The resource reference where a url must be generated for.
 	 * @return The url for the shared resource
@@ -983,7 +982,7 @@
 
 	/**
 	 * Returns a URL that references a shared resource through the provided resource reference.
-	 *
+	 * 
 	 * @param resourceReference
 	 *            The resource reference where a url must be generated for.
 	 * @param parameters
@@ -1183,7 +1182,7 @@
 
 	/**
 	 * Safe version of {@link #getProcessor()} that throws an exception when the processor is null.
-	 *
+	 * 
 	 * @return the request processor
 	 */
 	private final IRequestCycleProcessor safeGetRequestProcessor()
@@ -1373,7 +1372,7 @@
 	/**
 	 * Possibly set the page parameters. Only set when the request is resolving and the parameters
 	 * are passed into a page.
-	 *
+	 * 
 	 * @param parameters
 	 *            the parameters to set
 	 */
@@ -1390,7 +1389,7 @@
 	 * will result in displaying a user facing error page. Clients can override this method in case
 	 * they want to customize logging. NOT called for
 	 * {@link PageExpiredException page expired exceptions}.
-	 *
+	 * 
 	 * @param e
 	 *            the runtime exception
 	 */
@@ -1404,7 +1403,7 @@
 	 * by the session and the returned object will be cached in the session after that call; we can
 	 * expect the client to stay the same for the whole session, and implementations of
 	 * {@link #newClientInfo()} might be relatively expensive.
-	 *
+	 * 
 	 * @return the agent info object based on this request
 	 */
 	protected abstract ClientInfo newClientInfo();
@@ -1432,7 +1431,7 @@
 	 * Sets the metadata for this request cycle using the given key. If the metadata object is not
 	 * of the correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
-	 *
+	 * 
 	 * @param key
 	 *            The singleton key for the metadata
 	 * @param object
@@ -1440,20 +1439,20 @@
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */
-	public final void setMetaData(final MetaDataKey key, final Serializable object)
+	public final void setMetaData(final MetaDataKey key, final Object object)
 	{
 		metaData = key.set(metaData, object);
 	}
 
 	/**
 	 * Gets metadata for this request cycle using the given key.
-	 *
+	 * 
 	 * @param key
 	 *            The key for the data
 	 * @return The metadata or null if no metadata was found for the given key
 	 * @see MetaDataKey
 	 */
-	public final Serializable getMetaData(final MetaDataKey key)
+	public final Object getMetaData(final MetaDataKey key)
 	{
 		return key.get(metaData);
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?rev=628800&r1=628799&r2=628800&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java Mon Feb 18 08:33:16 2008
@@ -49,29 +49,29 @@
  * <ul>
  * <li><b>Access via RequestCycle </b>- The Session for a {@link RequestCycle} can be retrieved by
  * calling {@link RequestCycle#getSession()}.
- * 
+ *
  * <li><b>Access via Component </b>- If a RequestCycle object is not available, the Session can be
  * retrieved for a Component by calling {@link Component#getSession()}. As currently implemented,
  * each Component does not itself have a reference to the session that contains it. However, the
  * Page component at the root of the containment hierarchy does have a reference to the Session that
  * holds the Page. So {@link Component#getSession()} traverses the component hierarchy to the root
  * Page and then calls {@link Page#getSession()}.
- * 
+ *
  * <li><b>Access via Thread Local </b>- In the odd case where neither a RequestCycle nor a
  * Component is available, the currently active Session for the calling thread can be retrieved by
  * calling the static method Session.get(). This last form should only be used if the first two
  * forms cannot be used since thread local access can involve a potentially more expensive hash map
  * lookup.
- * 
+ *
  * <li><b>Locale </b>- A session has a Locale property to support localization. The Locale for a
  * session can be set by calling {@link Session#setLocale(Locale)}. The Locale for a Session
  * determines how localized resources are found and loaded.
- * 
+ *
  * <li><b>Style </b>- Besides having an appearance based on locale, resources can also have
  * different looks in the same locale (a.k.a. "skins"). The style for a session determines the look
  * which is used within the appropriate locale. The session style ("skin") can be set with the
  * setStyle() method.
- * 
+ *
  * <li><b>Resource Loading </b>- Based on the Session locale and style, searching for resources
  * occurs in the following order (where sourcePath is set via the ApplicationSettings object for the
  * current Application, and style and locale are Session properties):
@@ -85,7 +85,7 @@
  * 7. [classPath]/name[style].[extension] <br>
  * 8. [classPath]/name.[extension] <br>
  * </ul>
- * 
+ *
  * <li><b>Session Properties </b>- Arbitrary objects can be attached to a Session by installing a
  * session factory on your Application class which creates custom Session subclasses that have
  * typesafe properties specific to the application (see {@link Application} for details). To
@@ -93,20 +93,20 @@
  * provided. In a clustered environment, you should take care to call the dirty() method when you
  * change a property on your own. This way the session will be reset again in the http session so
  * that the http session knows the session is changed.
- * 
+ *
  * <li><b>Class Resolver </b>- Sessions have a class resolver ( {@link IClassResolver})
  * implementation that is used to locate classes for components such as pages.
- * 
+ *
  * <li><b>Page Factory </b>- A pluggable implementation of {@link IPageFactory} is used to
  * instantiate pages for the session.
- * 
+ *
  * <li><b>Removal </b>- Pages can be removed from the Session forcibly by calling remove(Page) or
  * removeAll(), although such an action should rarely be necessary.
- * 
+ *
  * <li><b>Flash Messages</b>- Flash messages are messages that are stored in session and are
  * removed after they are displayed to the user. Session acts as a store for these messages because
  * they can last across requests.
- * 
+ *
  * @author Jonathan Locke
  * @author Eelco Hillenius
  * @author Igor Vaynberg (ivaynberg)
@@ -115,7 +115,7 @@
 {
 	/**
 	 * Visitor interface for visiting page maps
-	 * 
+	 *
 	 * @author Jonathan Locke
 	 */
 	public static interface IPageMapVisitor
@@ -182,7 +182,7 @@
 
 	/**
 	 * Checks if the <code>Session</code> threadlocal is set in this thread
-	 * 
+	 *
 	 * @return true if {@link Session#get()} can return the instance of session, false otherwise
 	 */
 	public static boolean exists()
@@ -195,7 +195,7 @@
 	 * new one and attach it when none could be located and sets it as the current instance for this
 	 * thread. Typically, clients never touch this method, but rather use {@link Session#get()},
 	 * which does the locating implicitly when not yet set as a thread local.
-	 * 
+	 *
 	 * @return The session for the client of this request or a new, unbound
 	 */
 	public static final Session findOrCreate()
@@ -239,7 +239,7 @@
 
 	/**
 	 * Get the session for the calling thread.
-	 * 
+	 *
 	 * @return Session for calling thread
 	 */
 	public static Session get()
@@ -256,7 +256,7 @@
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
 	 * <p>
 	 * Sets session for calling thread. Also triggers {@link #attach()} being called.
-	 * 
+	 *
 	 * @param session
 	 *            The session
 	 */
@@ -277,7 +277,7 @@
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
 	 * <p>
 	 * Clears the session for calling thread.
-	 * 
+	 *
 	 */
 	public static void unset()
 	{
@@ -347,7 +347,7 @@
 
 	/**
 	 * Constructor. Note that {@link RequestCycle} is not available until this constructor returns.
-	 * 
+	 *
 	 * @param request
 	 *            The current request
 	 */
@@ -362,9 +362,9 @@
 
 	/**
 	 * Constructor. Note that {@link RequestCycle} is not available until this constructor returns.
-	 * 
+	 *
 	 * @deprecated Use #Session(Request)
-	 * 
+	 *
 	 * @param application
 	 *            The application that this is a session of
 	 * @param request
@@ -444,7 +444,7 @@
 
 	/**
 	 * Automatically creates a page map, giving it a session unique name.
-	 * 
+	 *
 	 * @return Created PageMap
 	 */
 	public final IPageMap createAutoPageMap()
@@ -465,9 +465,9 @@
 	/**
 	 * With this call you can create a pagemap name but not create the pagemap itself already. It
 	 * will give the first pagemap name where it couldn't find a current pagemap for.
-	 * 
+	 *
 	 * It will return the same name if you call it 2 times in a row.
-	 * 
+	 *
 	 * @return The created pagemap name
 	 */
 	public synchronized final String createAutoPageMapName()
@@ -503,7 +503,7 @@
 
 	/**
 	 * Registers an error feedback message for this session
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -514,7 +514,7 @@
 
 	/**
 	 * Get the application that is currently working with this session.
-	 * 
+	 *
 	 * @return Returns the application.
 	 */
 	public final Application getApplication()
@@ -545,7 +545,7 @@
 	 * on the current request when no client info object was set yet, and then caches the returned
 	 * object; we can expect the client to stay the same for the whole session, and implementations
 	 * of {@link RequestCycle#newClientInfo()} might be relatively expensive.
-	 * 
+	 *
 	 * @return the client info object based on this request
 	 */
 	public ClientInfo getClientInfo()
@@ -567,7 +567,7 @@
 
 	/**
 	 * Gets feedback messages stored in session
-	 * 
+	 *
 	 * @return unmodifiable list of feedback messages
 	 */
 	public final FeedbackMessages getFeedbackMessages()
@@ -578,7 +578,7 @@
 	/**
 	 * Gets the unique id for this session from the underlying SessionStore. May be null if a
 	 * concrete session is not yet created.
-	 * 
+	 *
 	 * @return The unique id for this session or null if it is a temporary session
 	 */
 	public final String getId()
@@ -598,7 +598,7 @@
 
 	/**
 	 * Get this session's locale.
-	 * 
+	 *
 	 * @return This session's locale
 	 */
 	public Locale getLocale()
@@ -608,7 +608,7 @@
 
 	/**
 	 * Gets metadata for this session using the given key.
-	 * 
+	 *
 	 * @param key
 	 *            The key for the data
 	 * @return The metadata
@@ -616,13 +616,13 @@
 	 */
 	public final Serializable getMetaData(final MetaDataKey key)
 	{
-		return key.get(metaData);
+		return (Serializable)key.get(metaData);
 	}
 
 	/**
 	 * When a regular request on certain page with certain version is being processed, we don't
 	 * allow ajax requests to same page and version.
-	 * 
+	 *
 	 * @param lockedRequestCycle
 	 * @return whether current request is valid or should be discarded
 	 */
@@ -633,10 +633,10 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
-	 * 
+	 *
 	 * Returns the page with given id and versionNumber. It keeps asking pageMaps for given page
 	 * until it finds one that contains it.
-	 * 
+	 *
 	 * @param pageId
 	 * @param versionNumber
 	 * @return The page of that pageid and version, null if not found
@@ -665,9 +665,9 @@
 
 	/**
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
-	 * 
+	 *
 	 * Get the page for the given path.
-	 * 
+	 *
 	 * @param pageMapName
 	 *            The name of the page map where the page is
 	 * @param path
@@ -821,7 +821,7 @@
 
 	/**
 	 * Get the style (see {@link org.apache.wicket.Session}).
-	 * 
+	 *
 	 * @return Returns the style (see {@link org.apache.wicket.Session})
 	 */
 	public final String getStyle()
@@ -831,7 +831,7 @@
 
 	/**
 	 * Registers an informational feedback message for this session
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -864,9 +864,9 @@
 	/**
 	 * Whether the session is invalid now, or will be invalidated by the end of the request. Clients
 	 * should rarely need to use this method if ever.
-	 * 
+	 *
 	 * @return Whether the session is invalid when the current request is done
-	 * 
+	 *
 	 * @see #invalidate()
 	 * @see #invalidateNow()
 	 */
@@ -879,7 +879,7 @@
 	 * Whether this session is temporary. A Wicket application can operate in a session-less mode as
 	 * long as stateless pages are used. If this session object is temporary, it will not be
 	 * available on a next request.
-	 * 
+	 *
 	 * @return Whether this session is temporary (which is the same as it's id being null)
 	 */
 	public final boolean isTemporary()
@@ -889,7 +889,7 @@
 
 	/**
 	 * Creates a new page map with a given name
-	 * 
+	 *
 	 * @param name
 	 *            The name for the new page map
 	 * @return The newly created page map
@@ -916,7 +916,7 @@
 
 	/**
 	 * Gets a page map for the given name, automatically creating it if need be.
-	 * 
+	 *
 	 * @param pageMapName
 	 *            Name of page map, or null for default page map
 	 * @param autoCreate
@@ -958,7 +958,7 @@
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
 	 * <p>
 	 * Sets the application that this session is associated with.
-	 * 
+	 *
 	 * @param application
 	 *            The application
 	 */
@@ -971,7 +971,7 @@
 	 * <p>
 	 * Sets the client info object for this session. This will only work when
 	 * {@link #getClientInfo()} is not overridden.
-	 * 
+	 *
 	 * @param clientInfo
 	 *            the client info object
 	 */
@@ -984,7 +984,7 @@
 
 	/**
 	 * Set the locale for this session.
-	 * 
+	 *
 	 * @param locale
 	 *            New locale
 	 */
@@ -1002,7 +1002,7 @@
 	 * Sets the metadata for this session using the given key. If the metadata object is not of the
 	 * correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
-	 * 
+	 *
 	 * @param key
 	 *            The singleton key for the metadata
 	 * @param object
@@ -1017,7 +1017,7 @@
 
 	/**
 	 * Set the style (see {@link org.apache.wicket.Session}).
-	 * 
+	 *
 	 * @param style
 	 *            The style to set.
 	 * @return the Session object
@@ -1034,9 +1034,9 @@
 	 * <p>
 	 * The page will be 'touched' in the session. If it wasn't added yet to the pagemap, it will be
 	 * added to the page map else it will set this page to the front.
-	 * 
+	 *
 	 * If another page was removed because of this it will be cleaned up.
-	 * 
+	 *
 	 * @param page
 	 */
 	public final void touch(Page page)
@@ -1061,7 +1061,7 @@
 	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
 	 * <p>
 	 * This method will remove a page that was previously added via touch()
-	 * 
+	 *
 	 * @param page
 	 */
 	public final void untouch(Page page)
@@ -1091,7 +1091,7 @@
 
 	/**
 	 * Registers a warning feedback message for this session
-	 * 
+	 *
 	 * @param message
 	 *            The feedback message
 	 */
@@ -1102,10 +1102,10 @@
 
 	/**
 	 * Adds a feedback message to the list of messages
-	 * 
+	 *
 	 * @param message
 	 * @param level
-	 * 
+	 *
 	 */
 	private void addFeedbackMessage(String message, int level)
 	{
@@ -1152,7 +1152,7 @@
 
 	/**
 	 * Gets the attribute value with the given name
-	 * 
+	 *
 	 * @param name
 	 *            The name of the attribute to store
 	 * @return The value of the attribute
@@ -1202,7 +1202,7 @@
 
 	/**
 	 * Gets the session store.
-	 * 
+	 *
 	 * @return the session store
 	 */
 	protected ISessionStore getSessionStore()
@@ -1216,7 +1216,7 @@
 
 	/**
 	 * Removes the attribute with the given name.
-	 * 
+	 *
 	 * @param name
 	 *            the name of the attribute to remove
 	 */
@@ -1241,7 +1241,7 @@
 
 	/**
 	 * Adds or replaces the attribute with the given name and value.
-	 * 
+	 *
 	 * @param name
 	 *            The name of the attribute
 	 * @param value
@@ -1294,7 +1294,7 @@
 
 	/**
 	 * NOT TO BE CALLED BY FRAMEWORK USERS.
-	 * 
+	 *
 	 * @deprecated obsolete method (was meant for internal book keeping really). Clients should
 	 *             override {@link #detach()} instead.
 	 */
@@ -1356,7 +1356,7 @@
 
 	/**
 	 * INTERNAL API. The request cycle when detached will call this.
-	 * 
+	 *
 	 */
 	final void requestDetached()
 	{
@@ -1467,7 +1467,7 @@
 
 	/**
 	 * Retrieves the next available session-unique value
-	 * 
+	 *
 	 * @return session-unique value
 	 */
 	public synchronized int nextSequenceValue()