Erro de batch update no método saveOrUpdate - Faces + Hibernate + Eclipse3.4 + Java1.6

Boa tarde pessoal,

Eu tenho uma aplicação Faces+Hibernate que ja estava rodando a dias normalmente.
Recentemente atualizei o Java e o Eclipse para sua ultima versão, e partir de então começou a dar erro de batch update em todas as transações do método saveOrUpdate em meu DAO Genérico.

O que está acontecendo eu já descobri e é muito simples: o atributo Id (Long) do Bean está pegando um valor 0 (zero), por isso ele faz update ao invés de insert e causa uma Exception é claro, pois o id 0 não existe.
O problema está em descobrir, por que de uma hora para outra isso começou a acontecer em um projeto que ja vinha funcionando a 3 meses.

Segue o código:

Bean

@Entity
@Table(name="inputpro")
@SequenceGenerator(name="inputpros",sequenceName="inputproseq")
public class InputPro implements Serializable {

	private static final long serialVersionUID = 3932083434235408289L;
	@Id @GeneratedValue(strategy=GenerationType.AUTO, generator="inputpros")
	private Long id;
	private String description;
...

DAO

	public void Save(T t){
		session.beginTransaction();
		session.saveOrUpdate(t);
		session.getTransaction().commit();
		session.clear();
	}

MB

	public void saveInputPro() {
		new DAO<InputPro>(InputPro.class, SessionPool.getCurrentSessionMeu()).Save(inputPro);
		inputPro = new InputPro();
...

Como vocês podem ver, um código simples sem nada de mais…

Abraços a todos!

Recebi umas reclamacoes de um pessoal com esse erro depois de atualizacao com… tomcat! Ele passou a usar um EL novo que usa zero em vez de null em muitos casos.

Experimenta passar o JAVA_OPTS no seu .sh ou no seu environment.

set JAVA_OPTS=%JAVA_OPTS%
-Dorg.apache.el.parser.COERCE_TO_ZERO=false

Paulo,

Estou invandindo um tópico que não tem nada haver, mas gostaria que vc me ajudasse com uma dúvida que postei aqui e ninguém deu um feedback à respeito, acredito que vc pode dar uma luz!

Abraço

[quote=Paulo Silveira]Recebi umas reclamacoes de um pessoal com esse erro depois de atualizacao com… tomcat! Ele passou a usar um EL novo que usa zero em vez de null em muitos casos.

Experimenta passar o JAVA_OPTS no seu .sh ou no seu environment.

set JAVA_OPTS=%JAVA_OPTS%
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
[/quote]

Paulo, realmente o problema está na EL do Tomcat.
Resolvi o problema somente retornando da versão 6.0.16 para 6.0.14.
Mesmo setando esse parametro na JAVA_OPTS, ainda assim não deu certo para mim, mas ainda não descartei essa solução, pois estou usando provisoriamente um laptop com WinVista.
Vou testar no Linux e te dou o feedback.

Mais uma vez obrigado,
Abraços,

Leandro Saran.