OracleGenerator

Im using the following method in my Data class.


public HierarchicalSQLContainer GetQueryContainerTest(String query)
	{
		TableQuery tableQuery = new TableQuery(query, connectionPool, new OracleGenerator());
		HierarchicalSQLContainer Container = null;
		 try {
			 Container = new HierarchicalSQLContainer(tableQuery);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 return Container;
	}

im getting the following exception

[code]

com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in com.example.cwebtesting.CwebtestingApplication failed.
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219)
at com.vaadin.ui.Button.fireClick(Button.java:567)
at com.vaadin.ui.Button.changeVariables(Button.java:223)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761)
at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:318)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StackOverflowError
at java.util.regex.Pattern.inRange(Unknown Source)
at java.util.regex.Pattern.access$200(Unknown Source)
at java.util.regex.Pattern$2.isSatisfiedBy(Unknown Source)
at java.util.regex.Pattern$6.isSatisfiedBy(Unknown Source)
at java.util.regex.Pattern$6.isSatisfiedBy(Unknown Source)
at java.util.regex.Pattern$CharProperty.match(Unknown Source)
at java.util.regex.Pattern$GroupHead.match(Unknown Source)
at java.util.regex.Pattern$Branch.match(Unknown Source)
at java.util.regex.Pattern$Branch.match(Unknown Source)
at java.util.regex.Pattern$Branch.match(Unknown Source)
at java.util.regex.Pattern$BranchConn.match(Unknown Source)
at java.util.regex.Pattern$GroupTail.match(Unknown Source)
at java.util.regex.Pattern$Curly.match0(Unknown Source)
at java.util.regex.Pattern$Curly.match(Unknown Source)
at java.util.regex.Pattern$GroupHead.match(Unknown Source)
at java.util.regex.Pattern$Branch.match(Unknown Source)
at java.util.regex.Pattern$Branch.match(Unknown Source)
at java.util.regex.Pattern$BmpCharProperty.match(Unknown Source)
at java.util.regex.Pattern$Start.match(Unknown Source)
at java.util.regex.Matcher.search(Unknown Source)
at java.util.regex.Matcher.find(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at com.vaadin.data.util.sqlcontainer.query.generator.OracleGenerator.generateSelectQuery(OracleGenerator.java:79)
at com.vaadin.data.util.sqlcontainer.query.TableQuery.getCount(TableQuery.java:128)
at com.vaadin.data.util.sqlcontainer.SQLContainer.updateCount(SQLContainer.java:1038)
at com.vaadin.data.util.sqlcontainer.SQLContainer.getItemIds(SQLContainer.java:313)
at cWeb.Core.HierarchicalSQLContainer.rootItemIds(HierarchicalSQLContainer.java:38)
at com.vaadin.ui.TreeTable$HierarchicalStrategy.getPreOrder(TreeTable.java:256)
at com.vaadin.ui.TreeTable$HierarchicalStrategy.size(TreeTable.java:185)
at com.vaadin.ui.TreeTable.size(TreeTable.java:551)
at com.vaadin.ui.Table.setCurrentPageFirstItemIndex(Table.java:1314)
at com.vaadin.ui.Table.containerItemSetChange(Table.java:3956)
at com.vaadin.ui.TreeTable.containerItemSetChange(TreeTable.java:584)
at com.vaadin.data.util.sqlcontainer.SQLContainer.fireContentsChange(SQLContainer.java:1460)
at com.vaadin.data.util.sqlcontainer.SQLContainer.refresh(SQLContainer.java:792)
at com.vaadin.data.util.sqlcontainer.SQLContainer.removeContainerFilters(SQLContainer.java:562)
at cWeb.Core.HierarchicalSQLContainer.rootItemIds(HierarchicalSQLContainer.java:39)
at com.vaadin.ui.TreeTable$HierarchicalStrategy.getPreOrder(TreeTable.java:256)
at com.vaadin.ui.TreeTable$HierarchicalStrategy.size(TreeTable.java:185)
at com.vaadin.ui.TreeTable.size(TreeTable.java:551)
[/code

Looks to me like some issue with the oracle generator i am using the Hierarchical container posted by another user on the forum to try and create a TreeTable from an oracle database with Parent / Child relationships,



package cWeb.Core;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import com.vaadin.data.Container;
import com.vaadin.data.util.filter.Compare;
import com.vaadin.data.util.sqlcontainer.SQLContainer;
import com.vaadin.data.util.sqlcontainer.query.QueryDelegate;

public class HierarchicalSQLContainer extends SQLContainer implements  Container.Hierarchical  {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private SQLContainer childrenContainer;

	public HierarchicalSQLContainer(QueryDelegate delegate) throws SQLException {
		super(delegate);
		childrenContainer = new SQLContainer(getQueryDelegate());
	}

	public Collection<?> getChildren(Object itemId) {
		//Compare.Equal myFilter = new Compare.Equal("parentId", (Integer) getItem(itemId).getItemProperty("id").getValue());
		//childrenContainer.addContainerFilter(myFilter);
		ArrayList<Object> myList = new ArrayList<Object>();
		myList.addAll(childrenContainer.getItemIds());
		childrenContainer.removeContainerFilters("parentId");
		return myList;
	}

	public Object getParent(Object itemId) {
		return getContainerProperty(itemId, "parentId");
	}

	public Collection<?> rootItemIds() {
		ArrayList<Object> myList = new ArrayList<Object>();
		myList.addAll(getItemIds());
		removeContainerFilters("parentId");
		return myList;
	}

	public boolean setParent(Object itemId, Object newParentId)
			throws UnsupportedOperationException {
		return true;
	}

	public boolean areChildrenAllowed(Object itemId) {
		return true;
	}

	public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed)
			throws UnsupportedOperationException {
		return true;
	}

	public boolean isRoot(Object itemId) {
		return true;
	}

	public boolean hasChildren(Object itemId) {
		return true;
	}
}

Im calling the GetQueryContainer in my TreeTable class am i doing something wrong?.