Tremenda Dúvida no datatable

Bom dia galera estou com problema que não estou conseguindo resolver.
É o seguinte Tenho minha jsf com uma datatable que preenche os dados tudo certinho.

minha jsf

<rich:dataTable 
                            value="#{provaController.todasProvasAtivas}"
                            onRowMouseOver="this.style.backgroundColor='#BEBEBE'"
                            onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                            var="provas" rows="10" rowKeyVar="row"
                            ajaxKeys="#{dataTableScrollerBean.keys}" id="tbLista"
                            onRowContextMenu="if (row) row.style.backgroundColor='#{a4jSkin.tableBackgroundColor}';
                            this.style.backgroundColor='#F1F1F1'; row=this;
                            #{rich:component('menu')}.show(event,{provasId:'#{provaController.prova.idaval}', currentRow:'#{row}'});
                            return false;">


                            <f:facet name="header">
                                <h:outputText value="Listas de Provas " />
                            </f:facet>                            
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Nome do Produto" />
                                </f:facet>
                                <h:outputText value="#{provas.produto}" id="produto" styleClass="campo"/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="N° da Prova" />
                                </f:facet>
                                <h:outputText value="#{provas.numprova}" id="numprova"  styleClass="campo"/>
                            </rich:column>

                            <rich:column width="200px">
                                <f:facet name="header">
                                    <h:outputText value="Fabricante" />
                                </f:facet>
                                <h:outputText value="#{provas.fabricante.fabricante}" id="fabricante" styleClass="campo"/>
                            </rich:column>

                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Ano/Plano" />
                                </f:facet>
                                <h:outputText value="#{provas.ano}" id="anoo" styleClass="campo"/>
                            </rich:column>

                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Tipo de Avaliação" />
                                </f:facet>
                                <h:outputText value="#{ provas.tipoaval == 'MEM' ? (provas.avaliacao == 'true' ? 'MEM - Aval':'MEM - Aprec')
                                                        : (provas.avaliacao == 'true' ? 'PCE - Aval':'PCE - Col Téc')  }" id="tipoAval" styleClass="campo" />
                            </rich:column>
                          
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Classe" />
                                </f:facet>
                                <h:outputText value="#{provas.classe.classe}" id="classe" styleClass="campo"/>
                            </rich:column>

                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Categoria" />
                                </f:facet>
                                <h:outputText value="#{provas.classe.categoria.categoria}" id="categoria" styleClass="campo"/>
                            </rich:column>
                            
                             <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Data Limite p/ Entrega Material" />
                                </f:facet>
                                 <h:outputText value="#{provas.dtlimitematerial}" id="dtLimite" styleClass="campo">
                                     <f:convertDateTime pattern="dd/MM/yyyy"/>
                                 </h:outputText>
                            </rich:column>
                            
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Dias" />
                                </f:facet>
                                <h:outputText value="#{provaController.strNumDias}" id="dias" styleClass="campo"/> // Aqui nessa coluna quero mostrar a quantidade de dia a vencer ou vencidos. 
                            </rich:column>
                            
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Ações" />
                                </f:facet>

                                <a4j:commandLink ajaxSingle="true" id="looklink" >
                                    <h:graphicImage value="imagens/olhoVerde.jpeg" style="border:0" width="20px"/>
                                    <f:setPropertyActionListener value="#{provas}"
                                                                 target="#{dataTableScrollerBean.currentItem}" />
                                    <f:setPropertyActionListener value="#{row}"
                                                                 target="#{dataTableScrollerBean.currentRow}" />

                                </a4j:commandLink>
                                <rich:toolTip for="looklink" value="Ver/Editar dados da Prova" />
                                <rich:spacer width="3"/>

                                <a4j:commandLink ajaxSingle="true" id="respProvalink" 
                                                 oncomplete="#{rich:component('respProvaPanel')}.show();" reRender="tbLista, tabProvas, produtoSelect">
                                    <h:graphicImage value="imagens/escolherUser.jpeg" style="border:0" width="20px"/>
                                    <f:setPropertyActionListener value="#{provas}"
                                                                 target="#{dataTableScrollerBean.currentItem}" />
                                    <f:setPropertyActionListener value="#{row}"
                                                                 target="#{dataTableScrollerBean.currentRow}" />

                                </a4j:commandLink>
                                <rich:toolTip for="respProvalink" value="Mostrar Responsáveis Pela Prova" />

                            </rich:column>

                            <f:facet name="footer">
                                <rich:datascroller id="datascroller" />
                            </f:facet>

                        </rich:dataTable>

Minha função que preenche essa datatable - Aqui me retorna o model para preencher a tabela.

public DataModel getTodasProvasAtivas() {
        System.out.println("getTodasProvasAtivas()");
        List<Prova> listaProvasAtivas = idao.todasProvasAtivas();
        model = new ListDataModel(listaProvasAtivas);
        Date dataAtual = new Date();
     for (Prova p : listaProvasAtivas) {
         verificaSituacaoDataLimiteEntrega(dataAtual, p.getDtlimitematerial());
     }
           
        return model;
    }

Minha função que verifica se a data está vencida

public String verificaSituacaoDataLimiteEntrega(Date dataAtual, Date dataLimite) {
        System.out.println("verificaSituacaoDataLimiteEntrega(Date dataAtual, Date dataLimite)");
              
        if (dataLimite.after(dataAtual)) {
            System.out.println("Data: " + dateFormat.format(dataLimite) + " é posterior à " + dateFormat.format(dataAtual));
            
            setStrNumDias("Faltam " + DataUtil.contarDias(dataLimite, dataAtual) + " dias para vencer");
          
            return strNumDias;
        } else if (dataLimite.before(dataAtual)) {
            System.out.println("Data: " + dateFormat.format(dataLimite) + " é inferior à " + dateFormat.format(dataAtual));
            setStrNumDias("Vencida a " + DataUtil.contarDias(dataLimite, dataAtual) + " dias");
          
             return strNumDias;
        } else if (dataLimite.equals(dataAtual)) {
            System.out.println("Data: " + dateFormat.format(dataLimite) + " é posterior à " + dateFormat.format(dataAtual));         
            setStrNumDias("Vence Hoje");        
            return strNumDias;
        }
        return strNumDias;
    }

Bom agora o pulo do gato
lá na minha JSF na coluna dias ele só mostra o ultimo dado depois do loop for. Eu acho que o erro ou bug é que quando está preenchendo a tabela ele está fazendo um outro loop e setando o ultimo valor (sobrescrevendo o dado anterior).
O que eu quero mostrar é

na prova ‘YYY’ (na coluna dias) -> "Faltam 9 dias para vencer"
na prova ‘AAA’ (na coluna dias) -> "Vence hoje"
na prova ‘XXX’ (na coluna dias) -> “Vencida a 15 dias”

E sempre é mostrado pra todos os dados somente o último dado dessa forma
na prova ‘XXX’ (na coluna dias) -> "Vencida a 15 dias"
na prova ‘YYY’ (na coluna dias) -> "Vencida a 15 dias"
na prova ‘AAA’ (na coluna dias) -> “Vencida a 15 dias”

Alguém poderia me ajudar???