Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#278 closed defect (worksforme)

Trying to create a new plate.

Reported by: tyoung@… Owned by: Nicklas Nordborg
Priority: trivial Milestone: BASE 2.1
Component: core Version:
Keywords: Cc:

Description

I'd previously created a dummy plate geometry and plate type, and upon trying to instantiate a plate from my dummy plate type, the server took a very long time to process the save request. I hit refresh in impatience (I'd waited 3-5 minutes), and after selecting the geometry again I hit save. It waited a few minutes, then crashed.

Change History (5)

comment:1 by tyoung@…, 18 years ago

Further information from this error:

Base version 2.0 (build #2353; schema #6) Web server Apache Tomcat/5.5.17 Database Dialect org.hibernate.dialect.MySQLInnoDBDialect JDBC Driver com.mysql.jdbc.Driver Browser Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4 Error message InvocationTargetException preparing statement capable of returning generated keys (JDBC3) Stack trace

...at org.hibernate.util.GetGeneratedKeysHelper.prepareStatement(GetGeneratedKeysHelper.java:55) ...at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:435) ...at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93) ...at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1948)

...at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405) ...at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37) ...at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243) ...at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269) ...at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167) ...at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:98) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) ...at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:531) ...at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523) ...at org.hibernate.engine.CascadingAction$1.cascade(CascadingAction.java:134) ...at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213) ...at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:157) ...at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:108) ...at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:290) ...at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:185) ...at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:160) ...at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:108) ...at org.hibernate.engine.Cascade.cascade(Cascade.java:248) ...at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:410) ...at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:299) ...at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167) ...at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) ...at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) ...at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) ...at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:559) ...at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547) ...at org.hibernate.impl.SessionImpl.save(SessionImpl.java:543) ...at HibernateUtil.saveData(HibernateUtil.java:944) ...at DbControl.commit(DbControl.java:334) ...at org.apache.jsp.lims.plates.index_jsp._jspService(index_jsp.java:168) ...at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) ...at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ...at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) ...at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) ...at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) ...at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ...at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) ...at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) ...at net.sf.basedb.clients.web.servlet.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:71) ...at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) ...at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) ...at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) ...at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) ...at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) ...at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) ...at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) ...at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) ...at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) ...at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) ...at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) ...at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) ...at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) ...at java.lang.Thread.run(Thread.java:595)

Caused by: java.lang.reflect.InvocationTargetException ...at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown Source) ...at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ...at java.lang.reflect.Method.invoke(Method.java:585) ...at org.hibernate.util.GetGeneratedKeysHelper.prepareStatement(GetGeneratedKeysHelper.java:45) ...at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:435) ...at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93) ...at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1948) ...at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405) ...at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37) ...at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243) ...at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269) ...at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167) ...at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:98) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) ...at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:531) ...at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523) ...at org.hibernate.engine.CascadingAction$1.cascade(CascadingAction.java:134) ...at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213) ...at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:157) ...at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:108) ...at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:290) ...at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:185) ...at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:160) ...at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:108) ...at org.hibernate.engine.Cascade.cascade(Cascade.java:248) ...at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:410) ...at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:299) ...at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167) ...at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) ...at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) ...at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) ...at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) ...at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:559) ...at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547) ...at org.hibernate.impl.SessionImpl.save(SessionImpl.java:543) ...at HibernateUtil.saveData(HibernateUtil.java:944) ...at DbControl.commit(DbControl.java:334) ...at org.apache.jsp.lims.plates.index_jsp._jspService(index_jsp.java:168) ...at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) ...at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ...at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) ...at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) ...at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) ...at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ...at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) ...at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) ...at net.sf.basedb.clients.web.servlet.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:71) ...at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) ...at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) ...at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) ...at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) ...at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) ...at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) ...at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) ...at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) ...at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) ...at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) ...at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) ...at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) ...at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) ...at java.lang.Thread.run(Thread.java:595)

Caused by: java.lang.OutOfMemoryError

0 more...

comment:2 by Nicklas Nordborg, 18 years ago

Milestone: BASE 2.0+
Priority: majortrivial

The original exception is a java.lang.OutOfMemoryError. This would probably happen if the plate geometry has many rows and or columns. The assumption during the code design has been that these numbers are relatively small, 8x12, 16x24, etc. But the numbers entered for the plate geometry are never checked and if someone enters very large numbers all memory could be used as we try to create the well objects for the plate.

comment:3 by Johan Enell, 18 years ago

Component: webcore
Owner: changed from Johan Enell to Nicklas Nordborg

This should be handled in some way to avoid the virtual maschine to crash.

comment:4 by Jari Häkkinen, 18 years ago

Resolution: worksforme
Status: newclosed

comment:5 by Jari Häkkinen, 18 years ago

Milestone: BASE 2.x+BASE 2.1
Note: See TracTickets for help on using tickets.