IllegalArgumentException com <rich:listShuttle>

Para usar o rich:listShuttle sou obrigado a imlementar um converter?

é que estou fazendo uma aplicação e resolvi utilizar o componente mais esta me retornando a seguinte exception

[#|2008-05-05T11:41:17.443-0300|SEVERE|sun-appserver9.1|facelets.viewhandler|_ThreadID=15;_ThreadName=httpSSLWorkerThread-8080-0;_RequestID=549074b1-093c-4014-bdd8-cb6a572496cf;|Error Rendering View[/pages/formGrupo.xhtml]
java.lang.IllegalArgumentException
	at org.richfaces.component.UIOrderingBaseComponent.createDataModel(UIOrderingBaseComponent.java:193)
	at org.richfaces.component.UIListShuttle.createDataModel(UIListShuttle.java:354)
	at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:626)
	at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1112)
	at org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:106)
	at org.richfaces.renderkit.ListShuttleRendererBase.encodeRows(ListShuttleRendererBase.java:99)
	at org.richfaces.renderkit.html.ListShuttleRenderer.doEncodeChildren(ListShuttleRenderer.java:265)
	at org.richfaces.renderkit.html.ListShuttleRenderer.doEncodeChildren(ListShuttleRenderer.java:255)
	at org.richfaces.renderkit.ListShuttleRendererBase.encodeChildren(ListShuttleRendererBase.java:226)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
	at org.richfaces.renderkit.html.SimpleToggleControlTemplate.doEncodeChildren(SimpleToggleControlTemplate.java:347)
	at org.richfaces.renderkit.html.SimpleToggleControlTemplate.doEncodeChildren(SimpleToggleControlTemplate.java:342)
	at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
	at org.richfaces.renderkit.html.SimpleTogglePanelRenderer.encodeChildren(SimpleTogglePanelRenderer.java:207)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
	at org.ajax4jsf.Filter.doFilter(Filter.java:175)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
	at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
	at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]

meu componente está implementado da seguinte forma

form

					<rich:listShuttle id="listFunGrupo" 
										var="item"
										sourceCaptionLabel="#{msgs.labelFuncionalidade}"
										sourceListWidth="300"
										sourceValue="#{funGrupoMBean.listSource}"
										targetCaptionLabel="#{msgs.labelFuncionalidadeGrupo}" 
										targetListWidth="300"
										targetValue="#{funGrupoMBean.listTarget}"
										fastOrderControlsVisible="false"
										orderControlsVisible="false" 
										copyAllControlLabel="#{msgs.buttonCopyAll}"
										copyControlLabel="#{msgs.buttonCopy}"
										removeControlLabel="#{msgs.buttonRemove}"
										removeAllControlLabel="#{msgs.buttonRemoveAll}">
						<h:column>
							<f:facet name="header">
								<h:outputText value="#{msgs.labelCodigo}" />
							</f:facet>
							<h:outputText value="#{item.fncCodigo}" />
						</h:column>
						<h:column>
							<f:facet name="header">
								<h:outputText value="#{msgs.labelFuncionalidade}" />
							</f:facet>
							<h:outputText value="#{item.fncNome}" />
						</h:column>
					</rich:listShuttle>

mbean

public class FuncionalidadesGrupoMBean {

	private DataModel listSource;
	private DataModel listTarget;

	public DataModel getListSource() {

		List<FuncionalidadeVO> list = new ArrayList<FuncionalidadeVO>();
		try {
			list = ServiceLocator.getInstance().getGrupo()
					.consultarFuncionalidades();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		listSource = new ListDataModel(list);
		return listSource;
	}

	public void setListSource(DataModel listSource) {
		this.listSource = listSource;
	}

	public DataModel getListTarget() throws Exception {

		GrupoVO grupoVO = carregaGrupoMBean();
		List<FuncionalidadeGrupoVO> list = new ArrayList<FuncionalidadeGrupoVO>();
		try {
			list = ServiceLocator.getInstance().getGrupo()
					.consultarFuncionalidadesGrupo(grupoVO);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		listTarget = new ListDataModel(list);
		return listTarget;
	}

	public void setListTarget(DataModel listTarget) {
		this.listTarget = listTarget;
	}
}