ERRO java.lang.IllegalStateException: Transaction not active

Tenho um
Tenho uma aplicação que possui uma chave primaria composta que vem executando de uma forma simples e fácil …
Tenho também um problema na hora de mandar salvar … que o tal erro ocorre …

[code]public String cadastrar(){
PeritosDAO pDAO=new PeritosDAO();

if (perito.getNomeMae().equals(""))
{
perito.setNomeMae(null);
}
try
{
pDAO.inserirEditar(perito);
limpar();
JSFUtil.setaMensagemInfo(“Cadastro/Edição efetuado com sucesso!”);

pDAO.getConexao().close();
}
catch (Exception e) {
JSFUtil.setaMensagemError("Erro no cadastro: "+e.getMessage());
pDAO.getConexao().getTransaction().rollback();
}
if(perito.getNome().equals(null)){
JSFUtil.setaMensagemError(“Erro no cadastro”);

}
return null;

}[/code]
INSERIR E EDITAR (DEBUGANDO REPAREI QUE ELE PARA NO INSERIR E EDITAR POIS APOS PASSAR POR ELE DÁ O ERRO …

[code]public T inserirEditar(T vo) {

    EntityTransaction tx = getConexao().getTransaction();

    if (!tx.isActive()) {
        tx.begin();
    }

    vo = getConexao().merge(vo);



    if (tx.isActive()) {
        tx.commit();
    }

    return vo;

}[/code]

Alguem pode me ajudar ?
Desde já agradeço …

Utilizo jpa 1.0 jsf 1.2 rodando no tomcat 7.0.27.0 richfaces 3.0