P:dataTable - problema com o selection

Pessoal, estou quebrando a cabeça aqui, mas o negocio nao ta indo

Estou montando um table com o primefaces e quando eu coloco o atributo selection na tabela, ele da nullpointer.

Segue código:

<h:form id="form_pesquisa_codigo_produto">
			<p:growl id="msg" showDetail="false" escape="false" />

			<p:panelGrid styleClass="semBorda" columns="1">
			<h:outputLabel value="#{msgs.global_selecione_tipo_pesquisa}:" for="select_tipo_pesquisa_codigo_produto" />
			<p:selectOneMenu id="select_tipo_pesquisa_codigo_produto" required="true" requiredMessage="#{msgs.global_campo_obrigatorio}"
					value="#{criarCotacaoController.tipoPesquisaSelecionada}"
					converter="simpleEntityConverter"
					style="width:210px; margin-left:8px;">
					<f:selectItems value="#{criarCotacaoController.listaTipoPesquisaCodigoProduto}" />
				</p:selectOneMenu>
			
			</p:panelGrid>
			
			<p:panelGrid styleClass="semBorda" columns="3">
				<p:inputText id="codigo_descricao_procurado" required="true" requiredMessage="#{msgs.global_campo_obrigatorio}"
					value="#{criarCotacaoController.codigoDescricaoProcurado}" style="width:250px;" />

				<h:commandButton id="procurar_codigo_produto" value="#{msgs.web_global_buscar}"
					actionListener="#{criarCotacaoController.procurarCodigoProduto()}"
					onclick="statusDialog.show();" oncomplete="javascript:fecha(xhr, status, args);" 
					styleClass="btn_procurar_user" update=":form_pesquisa_codigo_produto" />

			</p:panelGrid>
			<br />

			<p:dataTable id="tabela_resultado_pesquisa_produto"
				styleClass="tabela_resultado_pesquisa" var="produto"
				value="#{criarCotacaoController.listaProdutoModel}"
				selection="#{criarCotacaoController.produtoSelecionado}"
				paginator="true" rows="10" emptyMessage="#{msgs.global_nenhum_registro}">

				<f:facet name="header">
		          <h:outputLabel value="#{msgs.global_resultado_pesquisa}" />
		        </f:facet>
		        
		        <p:column selectionMode="single" style="width:18px" />

				<p:column
					style="max-width: 250px; min-width: 250px; overflow: hidden; text-align: center">
					<f:facet name="header">
						<h:outputText value="#{msgs.global_codigo_produto}" />
					</f:facet>
					<h:outputText value="#{produto.idProduto}" />
				</p:column>

				<p:column
					style="max-width: 400px; min-width: 400px; overflow: hidden">
					<f:facet name="header">
						<h:outputText value="#{msgs.global_descricao_produto}" />
					</f:facet>
					<h:outputText value="#{produto.descricaoProduto}" />
				</p:column>

			</p:dataTable>
		</h:form>

Segue o código do meu BEAN onde eu faço a busca:

public void procurarCodigoProduto() {
		setListaProdutoPesquisado(cotacaoService.getListaProdutoPorIDouDescricao(""));
		
		listaProdutoModel = new ProdutoDataModel(listaProdutoPesquisado);
		
		requestContext = RequestContext.getCurrentInstance();
		requestContext.addCallbackParam("fechar", false);
		
	}

Minha classe ProdutoDataModel:

public class ProdutoDataModel extends ListDataModel<Produto> implements SelectableDataModel<Produto> {

	
	public ProdutoDataModel() {
	}

	public ProdutoDataModel(List<Produto> data) {
		super(data);
	}

	@SuppressWarnings("unchecked")
	@Override
	public Produto getRowData(String rowKey) {		
		List<Produto> listaProdutos = (List<Produto>) getWrappedData(); 
        
        for(Produto prod : listaProdutos) {  
            if(prod.getDescricaoProduto().equals(rowKey)){  
                return prod;  
            }
        }           
        return null; 
	}

	@Override
	public Object getRowKey(Produto produto) {	
		return produto.getDescricaoProduto();
	}

}

e por fim, minha classe produto:

@Entity
@Table(name = "PRODUTO")
public class Produto implements Serializable {

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 8000669162389766673L;

	@Id
	@Column(name = "ID_PRODUTO")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer idProduto;

	@Column(name = "DESCRICAO_PRODUTO", unique = true)
	private String descricaoProduto;

	public Integer getIdProduto() {
		return idProduto;
	}

	public void setIdProduto(Integer idProduto) {
		this.idProduto = idProduto;
	}

	public String getDescricaoProduto() {
		return descricaoProduto;
	}

	public void setDescricaoProduto(String descricaoProduto) {
		this.descricaoProduto = descricaoProduto;
	}

	@Override
	public String toString() {
		return "Produto [idProduto=" + idProduto + ", descricaoProduto="
				+ descricaoProduto + "]";
	}

	@Override
	public Produto clone() {
		Produto clone = null;
		try {
			clone = (Produto) super.clone();
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return clone;

	}

}

Segue o erro:

INFO: 13:36:18,433 ERROR MyFilterSecurityInterceptor:64 -  Exception: javax.servlet.ServletException
javax.servlet.ServletException
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at br.com.gd.bpp.security.MyFilterSecurityInterceptor.invoke(MyFilterSecurityInterceptor.java:62)
	at br.com.gd.bpp.security.MyFilterSecurityInterceptor.doFilter(MyFilterSecurityInterceptor.java:42)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
	at br.com.gd.bpp.controller.datamodel.ProdutoDataModel.getRowData(ProdutoDataModel.java:26)
	at br.com.gd.bpp.controller.datamodel.ProdutoDataModel.getRowData(ProdutoDataModel.java:1)
	at org.primefaces.component.datatable.DataTable.getRowData(DataTable.java:811)
	at org.primefaces.component.datatable.feature.SelectionFeature.decodeSingleSelection(SelectionFeature.java:46)
	at org.primefaces.component.datatable.feature.SelectionFeature.decode(SelectionFeature.java:37)
	at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:53)
	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)
	at org.primefaces.component.api.UIData.processDecodes(UIData.java:224)
	at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
	at org.primefaces.component.dialog.Dialog.processDecodes(Dialog.java:352)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	... 60 more

Alguém poderia me dar uma luz por favor?
Estou sem saber oq fazer…