Boa tarde, estou executando uma rotina que insere alguns registros, e o seguinte erro é apresentado:
15:07:16,551 ERROR SqlExceptionHelper:144 - ERRO: invalid byte sequence for encoding "UTF8": 0x00
15:07:16,551 ERROR ValidateSession:65 - org.hibernate.exception.DataException: ERRO: invalid byte sequence for encoding "UTF8": 0x00
15:07:16,567 WARN SqlExceptionHelper:143 - SQL Error: 0, SQLState: 25P02
15:07:16,567 ERROR SqlExceptionHelper:144 - ERRO: transação atual foi interrompida, comandos ignorados até o fim do bloco de transação
Classe que insere
public void save(Matricula matricula) throws FacadeException {
FactoryDAO factory = BaseDAOFactory.getFactory();
MatriculaDAO dao = factory.getMatriculaDAO();
try {
dao.save(matricula);
geraLancamento(matricula);
} catch (DAOException e) {
throw new FacadeException(e);
}
}
private void geraLancamento(Matricula matricula) throws FacadeException {
FactoryDAO factory = BaseDAOFactory.getFactory();
LancamentoDAO dao = factory.getLancamentoDAO();
for(int count = 1; count <= matricula.getQtdeParcela(); count ++){
Lancamento lancamento = new Lancamento();
lancamento.setMatricula(matricula);
lancamento.setParcela(count);
lancamento.setValor(matricula.getValorParcela());
lancamento.setDataVencimento(DateUtils.monthAdd(matricula.getDataVencimento(), count));
try {
dao.save(lancamento);
} catch (DAOException e) {
throw new FacadeException(e);
}
lancamento = null;
}
}
DAOGenric
public void save(T t) throws DAOException {
try {
HibernateHelper.getManagedSession().save(t);
} catch (Exception e) {
throw new DAOException(e);
}
}
HibernateHelper
public static Session getManagedSession() {
return getManagedSession(true);
}
private static Session getManagedSession(boolean forceTransaction) {
Session s = sessionFactory.getCurrentSession();
if (forceTransaction && !s.getTransaction().isActive()) {
s.beginTransaction();
}
return s;
}
public static Transaction getTransaction() {
return getManagedSession(false).getTransaction();
}
Filtro que realiza o commit
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
boolean tudoOk = false;
try {
boolean auth = JsfUtil.getFuncionarioLogged() != null;
if (!auth && ((HttpServletRequest)req).getRequestURL().toString().contains("login.jsf")) {
req.getRequestDispatcher(SIGNON_PAGE_URI ).forward( req, resp );
}else{
chain.doFilter((HttpServletRequest) req, resp);
tudoOk = true;
}
} catch (ServletException e) {
log.error(e.getRootCause() == null ? e : e.getRootCause());
throw e;
} catch (IOException e) {
log.error(e);
throw e;
} catch (RuntimeException e) {
log.error(e);
throw e;
} finally {
try{
Transaction tx = HibernateHelper.getTransaction();
if (tx.isActive()) {
if (tudoOk){
tx.commit();
}else{
tx.rollback();
}
}
}catch(Exception e){
log.error(e);
}
}
}
Desde já agradeço.