Author: ivaynberg
Date: Tue Nov 16 18:01:53 2010
New Revision: 1035716

URL: http://svn.apache.org/viewvc?rev=1035716&view=rev
Log:
warn when referencing session directly in property model

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java?rev=1035716&r1=1035715&r2=1035716&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
 Tue Nov 16 18:01:53 2010
@@ -25,6 +25,8 @@ import org.apache.wicket.WicketRuntimeEx
 import org.apache.wicket.util.lang.PropertyResolver;
 import org.apache.wicket.util.lang.PropertyResolverConverter;
 import org.apache.wicket.util.string.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Serves as a base class for different kinds of property models. By default, 
this class uses
@@ -49,6 +51,8 @@ public abstract class AbstractPropertyMo
                IObjectClassAwareModel<T>,
                IPropertyReflectionAwareModel<T>
 {
+       private static final Logger logger = 
LoggerFactory.getLogger(AbstractPropertyModel.class);
+
        /**
         * 
         */
@@ -69,6 +73,14 @@ public abstract class AbstractPropertyMo
                        throw new IllegalArgumentException("Parameter 
modelObject cannot be null");
                }
 
+               if (modelObject instanceof Session)
+               {
+                       logger.warn("It is not a good idea to reference the 
Session instance "
+                               + "in models directly as it may lead to 
serialization problems. "
+                               + "If you need to access a property of the 
session via the model use the "
+                               + "page instance as the model object and 
'session.attribute' as the path.");
+               }
+
                target = modelObject;
        }
 


Reply via email to