[Deploying Sakai] Profile2 issue [was: Problems with deprecated tools after upgrade]

Markus Binsteiner lists.m at ilmark.us
Mon Aug 16 08:03:51 PDT 2010


Hi Steve,

On Mon, 2010-08-16 at 21:23 +1000, Steve Swinsburg wrote:

> The issue seems to be this:
> profileLogic.createDefaultPreferencesRecord(userUuid)
> 
> 
> which will create a record if you don't already have one. But that
> shouldn't block anything, it's a simple insert by Hibernate. I noticed
> a few MySQL exceptions in there, what do your MySQL logs say?

We're using a remote mysql db and I don't have access to the logs right
now. But for the sake of testing I imported a dump of the db into a
local instance of mysql.
Now the behaviour is different: I can click all the links and the
expected pages show up, except for the last one (Preferences) which
throws an exceptions (see below). Seems like the db update scripts maybe
missed something? 
I really don't understand why it (kinda) works for he local db, but not
for the remote one. Any idea

Thanks for your help,
Markus

The stacktrace:

2010-08-17 02:56:32,698  INFO TP-Processor8
org.sakaiproject.profile2.logic.ProfileLogicImpl - Created default
preferences record for user: 7a41c257-1336-4e1b-809a-e5bec01877f3
2010-08-17 02:56:32,755  WARN TP-Processor8
org.hibernate.util.JDBCExceptionReporter - SQL Error: 1364, SQLState:
HY000
2010-08-17 02:56:32,755 ERROR TP-Processor8
org.hibernate.util.JDBCExceptionReporter - Field 'TWITTER_ENABLED'
doesn't have a default value
2010-08-17 02:56:32,758 ERROR TP-Processor8
org.hibernate.event.def.AbstractFlushingEventListener - Could not
synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC
batch update
	at
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
	at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
	at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:254)
	at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
	at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
	at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339)
	at
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
	at
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
	at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
	at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
	at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
	at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy29.createDefaultPreferencesRecord(Unknown Source)
	at
org.sakaiproject.profile2.tool.pages.MyPreferences.<init>(MyPreferences.java:52)
	at org.sakaiproject.profile2.tool.pages.BasePage
$5.onClick(BasePage.java:126)
	at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:214)
	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:592)
	at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
	at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
	at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
	at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
	at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
	at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
	at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:585)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
	at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
	at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
	at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
	at org.sakaiproject.tool.impl.ActiveToolComponent
$MyActiveTool.forward(ActiveToolComponent.java:500)
	at
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1221)
	at
org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
	at
org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
	at
org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:646)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
	at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
	at org.apache.jk.common.ChannelSocket
$SocketConnection.runIt(ChannelSocket.java:897)
	at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.BatchUpdateException: Field 'TWITTER_ENABLED'
doesn't have a default value
	at
com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2020)
	at
com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1451)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
	at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:247)
	... 67 more
ERROR: 2010-08-17 02:56:32,813 Method onLinkClicked of interface
org.apache.wicket.markup.html.link.ILinkListener targeted at component
[MarkupContainer [Component id = preferencesLink]] threw an exception
[TP-Processor8]
org.apache.wicket.WicketRuntimeException: Method onLinkClicked of
interface org.apache.wicket.markup.html.link.ILinkListener targeted at
component [MarkupContainer [Component id = preferencesLink]] threw an
exception
	at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:194)
	at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
	at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
	at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
	at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
	at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
	at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:585)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
	at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
	at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
	at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
	at org.sakaiproject.tool.impl.ActiveToolComponent
$MyActiveTool.forward(ActiveToolComponent.java:500)
	at
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1221)
	at
org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
	at
org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
	at
org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:646)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
	at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
	at org.apache.jk.common.ChannelSocket
$SocketConnection.runIt(ChannelSocket.java:897)
	at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.reflect.InvocationTargetException
	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:592)
	at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
	... 44 more
Caused by: org.springframework.jdbc.UncategorizedSQLException: Hibernate
flushing: Could not execute JDBC batch update; uncategorized
SQLException for SQL [insert into PROFILE_PREFERENCES_T (EMAIL_REQUEST,
EMAIL_CONFIRM, USER_UUID) values (?, ?, ?)]; SQL state [HY000]; error
code [1364]; Field 'TWITTER_ENABLED' doesn't have a default value;
nested exception is java.sql.BatchUpdateException: Field
'TWITTER_ENABLED' doesn't have a default value
	at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
	at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at
org.springframework.orm.hibernate3.HibernateTransactionManager.convertJdbcAccessException(HibernateTransactionManager.java:801)
	at
org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:787)
	at
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
	at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
	at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
	at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
	at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy29.createDefaultPreferencesRecord(Unknown Source)
	at
org.sakaiproject.profile2.tool.pages.MyPreferences.<init>(MyPreferences.java:52)
	at org.sakaiproject.profile2.tool.pages.BasePage
$5.onClick(BasePage.java:126)
	at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:214)
	... 49 more
Caused by: java.sql.BatchUpdateException: Field 'TWITTER_ENABLED'
doesn't have a default value
	at
com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2020)
	at
com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1451)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
	at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:247)
	at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
	at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
	at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339)
	at
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
	at
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)





More information about the production mailing list