Bom dia a todos,
Estou com um problema a algum tempo quando rodo minha aplicação JSF + EJB 3.0 + Oracle.
Toda vez que acabo de fazer o deploy da aplicação e acesso pela primeira vez uma query e gerado um StackOverFlow. Porem com o erro de stackoverflow na tela se o usuario der um refresh (f5) a aplicação roda normalmente a partir dai.
Vou colocar o trace do erro qd acontece o Stackoverflow e as entidades que fazem parte da query.
EJB5018: An exception was thrown during an ejb invocation on [CampoFacade]
javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3869)
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3769)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
at $Proxy114.getCampoAll(Unknown Source)
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:585)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at br.uff.addlabs.ejb.poco.__CampoFacadeRemote_Remote_DynamicStub.getCampoAll(br/uff/addlabs/ejb/poco/__CampoFacadeRemote_Remote_DynamicStub.java)
at br.uff.addlabs.ejb.poco._CampoFacadeRemote_Wrapper.getCampoAll(br/uff/addlabs/ejb/poco/_CampoFacadeRemote_Wrapper.java)
at br.uff.addlabs.util.BuscaPoco.<init>(BuscaPoco.java:68)
at br.uff.addlabs.control.poco.PocoBean.<init>(PocoBean.java:174)
at br.uff.addlabs.util.UsuarioBean.novaNavegacao(UsuarioBean.java:49)
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:585)
at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17)
at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:54)
at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:42)
at com.icesoft.faces.webapp.http.core.ViewBoundServer.service(ViewBoundServer.java:65)
at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:44)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
at com.icesoft.faces.webapp.http.servlet.GlassFishAdaptingServlet.service(GlassFishAdaptingServlet.java:60)
at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:139)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:46)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.StackOverflowError
at oracle.toplink.essentials.internal.helper.DatabaseField.hashCode(DatabaseField.java:275)
at java.util.HashMap.get(HashMap.java:343)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:425)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:433)
entidade campo
@Entity
@Table(name = "CAMPO")
public class Campo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_CAMP")
@SequenceGenerator(name = "SQ_CAMP", sequenceName = "SQ_CAMP", allocationSize=1)
@Column(name = "CAMP_SQ_IDENTIFICADOR", nullable = false)
private Integer campSqIdentificador;
@Column(name = "CAMP_DS_DESCRICAO")
private String campDsDescricao;
@Column(name = "CAMP_NM_CAMPO", nullable = false)
private String campNmCampo;
@JoinColumn(name = "UNNE_SQ_IDENTIFICADOR",referencedColumnName = "UNNE_SQ_IDENTIFICADOR")
@ManyToOne
private UnidadeNegocio unneSqIdentificador;
@OneToMany(mappedBy = "campSqIdentificador")
private Collection<Poco> pocoCollection;
entidade unicade de negocio
@Entity
@Table(name = "UNIDADE_NEGOCIO")
public class UnidadeNegocio implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "UNNE_SQ_IDENTIFICADOR", nullable = false)
private Integer unneSqIdentificador;
@Column(name = "UNNE_NM_UNI_NEGOCIO", nullable = false)
private String unneNmUniNegocio;
@Column(name = "UNNE_NM_SIGLA")
private String unneNmSigla;
@OneToMany(mappedBy = "unneSqIdentificador")
private Collection<Poco> pocoCollection;
@OneToMany(mappedBy = "unneSqIdentificador")
private Collection<Campo> campoCollection;
metodo do facade de campo que pega todos os campos.
public List getCampoAll() {
List aux = null;
aux = em.createQuery("select o.campSqIdentificador, o.campNmCampo, o.unneSqIdentificador.unneSqIdentificador from Campo as o ORDER BY o.campNmCampo").getResultList();
return aux;
}
Já pesquisei pela net o StackOverFlow mas nao vi ninguem relatando esse problema de acontecer apenas uma vez e após o deploy.
desde ja agradeço a colaboração de todos