Problema de índice com o Floggy

Olá!
Estou com um problema de performance numa aplicação que utiliza Floggy para persistência, e já gastei um bom tempo tentando utilizar o recurso de índice que foi incluída na versão 1.4.0 alpha mas sem sucesso. Será que terei que migrar para o Perst? rsrsrs
Tenho tabelas que vão de 30 a 4000 registros, e isto não está nem um pouco performático, problema já conhecido do RMS.
Ví no site do floggy (http://floggy.sourceforge.net/core-package.html#Using_the_index_feature_only_available_on_package_1.4.0-alpha) que a versão 1.4.0 alpha trabalha com o recurso de índice. Baixei o exemplo más abriu no Netbeans 6.8 com erros de dependência. Então resolvi criar um programa para teste que tem o objetivo de filtrar uma ‘tabela’ por um campo específico.
O problema é que recebo um erro de FloggyException na linha ObjectSet os = pm.find(TableOneDAO.class, fil, true) e quando tento visualizar o backtrace da erro de runMidlet no Netbeans. Estou usando o emulador LG KP500.
Já verifiquei o build.xml e o floggy.xml e aparentemente tudo esta certo.

método de filtro de registro (TableOneDAO), deve retornar uma ‘coleção’ de registros que condizem com o critério do filtro.

Segue abaixo o arquivo floggy.xml

<?xml version="1.0" encoding="UTF-8"?> TableOneDAO filtroUm

Ajuda e palpites são bem-vindos!
Obrigado.

apenas para facilitar a leitura estou postando aqui os arquivos:

Este método filtra os registros que correspondem ao critério do IndexFilter.

public Vector findFilter(String filterKey, String filterValue) throws Exception {
    Vector vctLista = new Vector();
     PersistableManager pm;
     pm = PersistableManager.getInstance();
     try {
        IndexFilter fil = new IndexFilter(filterKey, filterValue); // <- ERRO. Valores: filterKey = "filtroUM" e filterValue = "01"
        if (fil!=null) {
            ObjectSet os = pm.find(TableOneDAO.class, fil, true);
            if (os !=null){
                TableOneDAO dao;
                for(int i=0;i<os.size();i++) {
                    dao = (TableOneDAO)os.get(i);
                    dao.setID(os.getId(i));
                    vctLista.addElement(dao);
                }
            }
        }
    }
    catch (FloggyException flgex) {
            throw new ExceptionSet(flgex, "TestePerformanceDOM|FloggyException.");
    }
    catch (Exception ex) {
        throw new ExceptionSet(ex, "TestePerformanceDOM|Exception.");
    }
    return vctLista;
}

Estrutura do registro
public class TableOneDAO implements Persistable {
public String codigo = “”;
public String descricao = “”;
public String descricaoReduzida = “”;
public String filtroUm = “”;
public String filtroDois = “”;
public String filtroTres = “”;
public transient int ID;

public String getRecordStoreName(){
    return "TableOneDAO";
}

Arquivo build.xml:

<!--
    IMPORTANT: You must change the value of this property pointing it to the directory
    where you have installed Floggy.

    Some examples:
    Linux: /opt/floggy
    Windows: c:\floggy
-->
<property name="floggy.path" value="C:\Desenvolvimento\JME\LIBS\Floggy_1.4.0"/>

<path id="floggy.classpath">
    <fileset dir="${floggy.path}\lib" includes="*.jar"/>
</path>

<target name="post-compile">
    <taskdef
        name="floggy-persistence-weaver"
        classname="net.sourceforge.floggy.persistence.WeaverTask"
        classpathref="floggy.classpath"/>
    <floggy-persistence-weaver
        bootclasspath="${platform.bootclasspath}"
        classpath="${libs.classpath}"
        input="${build.classes.dir}"
        output="${build.classes.dir}"/>
</target>

É isto ai.

Boa noite Marcelo,

Você poderia nos fornecer o stack trace da exception? Sem ela não posso te dizer o que pode ou não estar acontecendo.

Aqui está um exemplo de aplicação que usa a nova funcionalidade: http://floggy.sourceforge.net/1.4.0-alpha/floggy-persistence-demo-1.4.0-SNAPSHOT.zip

No aguardo

Um abraço

Thiago, obrigado pela resposta.
Então, o erro na verdade ocorre no método findFilter, linha:
ObjectSet os = pm.find(TableOneDAO.class, fil, true);
Ao ser executada, me retorna um erro de FloggyException (“net.sourceforge.floggy.persistence.FloggyException: 0”)

org.netbeans.modules.viewmodel.TreeModelNode@11e1fb3[Name=, displayName=flgex] FloggyException #204
…displayName=rootCause] NullPointerException #211
…displayName=Herdado]
…displayName=detailMessage] String " 0"
…displayName=offset] int 0
…displayName=count] int 3
…displayName=value] char[] #219(length=3)
…displayName=[0]] char ’ ’
…displayName=[1]] char ’ ’
…displayName=[2]] char ‘0’
…displayName=backtrace] Object[] #214(length=2)
…displayName=[1]] int[] #217(length=13)
…displayName=[0]] Object[] #216(length=13)

Ao examinar o observador da FloggyExceptio gerada, se tento abrir o ‘backtrace’, índice [0] da ‘rootCause’, o Netbeans retorna erro de runMidlet e aborta a execução.
Verifiquei e o objeto IndexFilter “fil” esta devidamente valorado. Inclusive testei com valores literais na passagem do construtor:
IndexFilter fil = new IndexFilter(“filtroUm”, “1”);
Mas o erro persistiu.
Não sei se isto ajuda, se precisar de mais informações por favor me informe.

Marcelo, tu poderia anexar aqui uma aplicação mínima que reproduzisse o problema? Pode ser pré connfigurada para Netbeans mesmo.

No aguardo