Bom dia!
Ao realizar uma consulta com JSF/Facelets/EJB 3/JPA (HIbernate Entity Manager)/Firebird usando o servidor Glassfish e estou enfrentando um NoClassDefFoundException estranhíssimo, a falta da classe sun.util.calendar.JulianCalendar. Acontece que não há no sistema qualquer menção a um calendário que não seja o gregoriano (e nem sei como se faz isso). O problema é que eu não tenho o controle de como o JPA, o Hibernate e o driver JDBC do Firebird tratam manipulação de datas. Não achei nada no Google sobre isto. Alguém já passou por este problema? Além disto, algumas vezes o erro que dá é um PermGen space. Abaixo o stack trace.
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.util.calendar.JulianCalendar
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at sun.util.calendar.CalendarSystem.forName(CalendarSystem.java:149)
at java.util.GregorianCalendar.getJulianCalendarSystem(GregorianCalendar.java:2643)
at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2388)
at java.util.Calendar.updateTime(Calendar.java:2463)
at java.util.Calendar.getTimeInMillis(Calendar.java:1082)
at java.util.Calendar.getTime(Calendar.java:1055)
at org.firebirdsql.gds.XSQLVAR$datetime.toDate(XSQLVAR.java:751)
at org.firebirdsql.gds.XSQLVAR.decodeDate(XSQLVAR.java:604)
at org.firebirdsql.jdbc.field.FBDateField.getDate(FBDateField.java:61)
at org.firebirdsql.jdbc.FBResultSet.getDate(FBResultSet.java:828)
at org.hibernate.type.DateType.get(DateType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2046)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1371)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1299)
at org.hibernate.loader.Loader.getRow(Loader.java:1197)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:388)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:82)
at br.uenf.academico.modelo.ejb.AlunoFacadeBean.getAluno(AlunoFacadeBean.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1050)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2766)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3847)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:184)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:71)
at $Proxy88.getAluno(Unknown Source)
at br.uenf.academico.gui.InscricaoDisciplinaController.validarAluno(InscricaoDisciplinaController.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:151)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
... 39 more