LazyQueryContainer is not working

Hi All,

I am trying to load huge data to a table using lazyquerycontainer. Am getting exception since loaditems() method in SearchQuery class is called recursively.When i checked for container size it is return correct value.

below is the exception

com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:170)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
at com.vaadin.server.AbstractCommunicationManager.handleBurst(AbstractCommunicationManager.java:1680)
at com.vaadin.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1566)
at com.vaadin.server.AbstractCommunicationManager.handleUidlRequest(AbstractCommunicationManager.java:582)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:315)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:201)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)

Below is my Code snippet

final LazyQueryContainer container = new LazyQueryContainer(searchqueryfactory,
“_id”, 10,false);

//SearchQueryfactory

public Query constructQuery(QueryDefinition arg0) {
// TODO Auto-generated method stub

	Object[] arg=arg0.getSortPropertyIds();
	boolean[] arg1= arg0.getSortPropertyAscendingStates();

	String sortField = null;
	boolean sortOrder = false;
	if (arg0 != null && arg.length > 0) {
		sortField = arg[0]

.toString();
}
if (arg1 != null && arg1.length > 0) {
sortOrder = arg1[0]
;
}

	if (sortField == null) {
		sortField = this.search.getSortKey();
		sortOrder = this.search.isSortOrder();
	}
	return new SearchQuery(this,arg0, sortField, sortOrder);

	
}

}

public class SearchQuery implements Query{

public List loadItems(int startIndex, int count)
{
try{
List<Map<String,Object>> result=factory.getResult(startIndex, count, this.sortField, this.sortOrder);
return this.convertResultToItem(result);
}catch (Exception e) {
e.printStackTrace();
logUtil.error("Exception : " + e.getMessage());
return null;
}
}
private List convertResultToItem(List<Map<String,Object>> result){

	List<Item> items=new ArrayList<Item>();
	int count=0;
	Collection<Object> propIds=definition.getPropertyIds();
	if(result!=null){
		 for(Map<String,Object> map:result){
			    PropertysetItem item=new PropertysetItem();	
			   
	        	for(Object id:propIds){
	        			item.addItemProperty(id, new ObjectProperty(
		        				map.get(id.toString()),
		        			(Class)definition.getPropertyType(id),
		        				(Boolean)definition.isPropertyReadOnly(id)
		    					));
	    
	        			
	        			
	        			
	        	}		        	
	        	items.add(item);
	        	count=count+1;
	        }
	}
	return items;
}

}[b]

[/b][b]

[/b][u]

[/u]

Hi!

Could you please post the full stacktrace? The interesting stuff is found deeper in the exception stack.

Best regards,
Thomas