You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2011/12/01 20:45:19 UTC

svn commit: r1209211 - in /wicket/trunk: ./ wicket-core/ wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java

Author: ivaynberg
Date: Thu Dec  1 19:45:18 2011
New Revision: 1209211

URL: http://svn.apache.org/viewvc?rev=1209211&view=rev
Log:
imroved inconsistency detection in choice components

Modified:
    wicket/trunk/   (props changed)
    wicket/trunk/wicket-core/   (props changed)
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java

Propchange: wicket/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec  1 19:45:18 2011
@@ -1,3 +1,4 @@
 /wicket/branches/wicket-1.4.x:963681,1027877
+/wicket/branches/wicket-1.5.x:1209203
 /wicket/sandbox/jthomerson/experimental/wicket-devutils:760296-760351,760353-760355
 /wicket/trunk/wicket-devutils:760352

Propchange: wicket/trunk/wicket-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec  1 19:45:18 2011
@@ -1,5 +1,6 @@
 /wicket/branches/wicket-1.3.x/jdk-1.4/wicket:653208,653212,653215,653226,653231,654304,655446,655466,655786,658141,658189,659118,659120,662360,663058,671549,671885,687144-688996,698530-698577,701132-701133,701843,701850-701877,704231,708127,722099-722105,726536,728467-728490,731960,734478,739647,739951,745468-745497,749817,755171-755176,759905,760374,764756,769389,769440,774373,781715,781719,790879
 /wicket/branches/wicket-1.4.x/wicket:963681,998663,1005194-1005196,1005201,1005205,1024347,1027877
+/wicket/branches/wicket-1.5.x/wicket-core:1209203
 /wicket/sandbox/jthomerson/experimental/wicket-devutils/wicket:760296-760351,760353-760355
 /wicket/trunk/wicket:1005201
 /wicket/trunk/wicket-devutils/wicket:760352

Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java?rev=1209211&r1=1209210&r2=1209211&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java Thu Dec  1 19:45:18 2011
@@ -22,6 +22,8 @@ import org.apache.wicket.Localizer;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -37,6 +39,7 @@ import org.apache.wicket.util.string.Str
 public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 {
 	private static final long serialVersionUID = 1L;
+	private static final Logger logger = LoggerFactory.getLogger(AbstractSingleSelectChoice.class);
 
 	/** String to display when the selected value is null and nullValid is false. */
 	private static final String CHOOSE_ONE = "Choose One";
@@ -191,6 +194,20 @@ public abstract class AbstractSingleSele
 		if (object != null)
 		{
 			int index = getChoices().indexOf(object);
+
+			if (index < 0)
+			{
+				// the model is returning a choice that is not in the available choices collection
+
+				logger.warn(
+					"Detected inconsistency in choice component: {}/{}. Model returned object: {}, but this object is not available in the list of selected objects.",
+					new Object[] { getPage().getClass(), getPageRelativePath(), object });
+
+				// pretend like nothing is selected
+
+				return "";
+			}
+
 			return getChoiceRenderer().getIdValue(object, index);
 		}
 		else