You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Tero Tarkkala (JIRA)" <ji...@apache.org> on 2015/11/26 11:21:10 UTC

[jira] [Created] (WICKET-6045) ListView gets wrong viewsize when changing from arbitrary list with size > 0 to null list

Tero Tarkkala created WICKET-6045:
-------------------------------------

             Summary: ListView gets wrong viewsize when changing from arbitrary list with size > 0 to null list
                 Key: WICKET-6045
                 URL: https://issues.apache.org/jira/browse/WICKET-6045
             Project: Wicket
          Issue Type: Bug
    Affects Versions: 7.1.0
            Reporter: Tero Tarkkala
            Priority: Minor


ListView tries to render the null list because of the beginning of method ListView.getViewSize():
public int getViewSize()
	{
		int size = viewSize;

		final Object modelObject = getDefaultModelObject();
		if (modelObject == null)
		{
			return size == Integer.MAX_VALUE ? 0 : size;
		}
....

Let say I had 10 items in the list before a refresh to this listview. When refreshing, my getter returned null because it didn't find anything 
-> modelObject is null and size != Integer.MAX_VALUE 
-> previous viewSize is returned. 
-> populateItem throws npe if it tries for example getDefaultModelObject() like this:
java.lang.NullPointerException
     at org.apache.wicket.markup.html.list.ListItemModel.getObject(ListItemModel.java:61)
     at org.apache.wicket.Component.getDefaultModelObject(Component.java:1626)
     at syncrontech.common.gate.list.GateEditableListPanel$2.populateItem(GateEditableListPanel.java:264)
     at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:523)

The behaviour is also inconsistent: Constructing the listview with null list is ok, because that same point in code would return the 0.

This should probably always return 0 if the modelObject is null? Or am I missing something?




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)