Problema no prevayler

Galerinha da pessada, passei por 2 fóruns e ninguem conseguiu me dar uma luz.

Estou tentando usar o prevayler, mas toh fazendo alguma coisa muuuito errada.

Eu toh usando a serialização em XML… enquanto eu rodo o meu programa eu vejo o XML aumentando de tamanho, trazendo + detalhes, vejo o garfo se expandindo como esperado. Quando fecho, vejo que tudo que não tinha sido gravado ainda vai pro HD. Mas, como tudo tem um mas… quando eu rodo o meu aplicativo denovo ele simplesmente perde tudo. Ele começa tudo do 0.

Eu fiz uma persistence factory que é a responsável por manter a thread que faz o snapshot e por inicializar o prevayler. O código está abaixo, se alguem puder me ajudar…

/*
 * Created on 18/06/2005
 */
package br.com.orzare.persistence.toolmakerfactory;

import java.io.IOException;

import org.prevayler.Prevayler;
import org.prevayler.PrevaylerFactory;
import org.prevayler.implementation.snapshot.XStreamSnapshotManager;

import br.com.orzare.common.Logger;

import com.thoughtworks.xstream.XStream;

/**
 * @author Marvin Herman Froeder
 */
public class PersistenceFactory {
    private static class Snapshoter implements Runnable {
        public void run() {
            int errors = 0;
            while (true && errors < 4) {
                try {
                    Thread.sleep(1000 * 20);
                    prevayler.takeSnapshot();
                    Logger.info("Snapshot taken at " + new java.util.Date() + "...");
                } catch (Exception e) {
                    errors++;
                }

            }
        }

    }

    private static Prevayler prevayler;

    private static Prevayler getPrevayler() {
        try {
            if (prevayler == null) {
                PrevaylerFactory factory = new PrevaylerFactory();
                factory.configureSnapshotManager(new XStreamSnapshotManager(
                        new ToolMakerFactory(), "base") {
                    protected XStream createXStream() {
                        XStream xstream = new XStream();
                        // faz o XML ficar identado.
                        xstream.alias("PrevaylerFactory", PrevaylerFactory.class);
                        return xstream;
                    }
                });
                prevayler = factory.create();

                startSnapshots();
            }
            return prevayler;
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException(e);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException(e);
        }
    }

    public static ToolMakerFactory getToolFacotry() {
        return (ToolMakerFactory) getPrevayler().prevalentSystem();
    }

    public static void makeSnapshot() {
        try {
            PersistenceFactory.prevayler.takeSnapshot();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    private static void startSnapshots() {
        Thread t = new Thread(new Snapshoter());
        t.start();
    }

}

Eu já tentei usar a serialização normal, mas ocorre a mesma coisa, ao abrir o meu programa todos os dados são perdido.
Alguem já passou por esse problema? Não sei por onde sair.

VELO