Not a Valid Validation code

Description

I'm seeing two issues, I think. I add a non-official participant. The non-official participant does get added to the site. Since email service is not available on trunk, look in catalina.out . I use the URL to validate the account and I get xxxxx is not a valid validation code error.

I also notice a stack trace , and I'm not sure if it is related:

-======sakai-multi-part-boundary======
Content-Type: text/html; charset=iso-8859-1
<p>Neal (instr) Caidin (neal.caidin@apereo.org) has invited you to join the <strong>ncaidin tst 01 Spring 2013</strong> site on sakai/trunk on Oracle.</p>

<p><a href=http://nightly2.sakaiproject.org:8082/accountvalidator/faces/validate?tokenId=d7e152e7-66c1-4992-989e-66f541261721>Accept this invitation http://nightly2.sakaiproject.org:8082/accountvalidator/faces/validate?tokenId=d7e152e7-66c1-4992-989e-66f541261721</a></p>

<h2>What is sakai/trunk on Oracle?</h2>
<p>sakai/trunk on Oracle is the 's web-based learning management system. It is home to many course sites, as well as a host of other sites including those used for administration, research and project groups, libraries and student societies. As a guest user, you have been invited to join a sakai/trunk on Oracle site. On the site you will have rights to read content but you also may be able to create and/or edit content (depending on your assigned role).</p>

<h2>What if I already have a sakai/trunk on Oracle account?</h2>
<p>If you have used sakai/trunk on Oracle in the past then you already have a sakai/trunk on Oracle account, in
which case we strongly suggest that you accept the above invitation and then
indicate which existing sakai/trunk on Oracle account you wish to use to access this site. This
will avoid you having multiple accounts, each with a different set of
associated sites. If you do not choose to associate this site with an existing
account, a new guest account will be created for you using this email
address. In the future, login to sakai/trunk on Oracle using the
guest account username and its associated password.</p>

--======sakai-multi-part-boundary======--

2013-09-20 10:44:38,750 WARN http-bio-8082-exec-3 org.hibernate.util.JDBCExceptionReporter - SQL Error: 1400, SQLState: 23000
2013-09-20 10:44:38,753 ERROR http-bio-8082-exec-3 org.hibernate.util.JDBCExceptionReporter - ORA-01400: cannot insert NULL into ("SAK"."VALIDATIONACCOUNT_ITEM"."FIRST_NAME")

2013-09-20 10:44:38,753 WARN http-bio-8082-exec-3 org.hibernate.util.JDBCExceptionReporter - SQL Error: 1400, SQLState: 23000
2013-09-20 10:44:38,753 ERROR http-bio-8082-exec-3 org.hibernate.util.JDBCExceptionReporter - ORA-01400: cannot insert NULL into ("SAK"."VALIDATIONACCOUNT_ITEM"."FIRST_NAME")

2013-09-20 10:44:38,755 WARN http-bio-8082-exec-3 PonderUtilCore - Error invoking action
Target exception of class org.springframework.dao.DataIntegrityViolationException
Successive lines until stack trace show causes progressing to exception site:
Error invoking action
--> Error invoking method processConfirmContinue in bean at path siteAddParticipantHandler.processConfirmContinue
--> Could not execute JDBC batch update; SQL [insert into VALIDATIONACCOUNT_ITEM (USER_ID, VALIDATION_TOKEN, VALIDATION_SENT, VALIDATION_RECEIVED, VALIDATIONS_SENT, STATUS, FIRST_NAME, SURNAME, ACCOUNT_STATUS, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into VALIDATIONACCOUNT_ITEM (USER_ID, VALIDATION_TOKEN, VALIDATION_SENT, VALIDATION_RECEIVED, VALIDATIONS_SENT, STATUS, FIRST_NAME, SURNAME, ACCOUNT_STATUS, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:643)
at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:794)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:665)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy8.save(Unknown Source)
at org.sakaiproject.accountvalidator.logic.impl.ValidationLogicImpl.createValidationAccount(ValidationLogicImpl.java:418)
at org.sakaiproject.accountvalidator.logic.impl.ValidationLogicImpl.createValidationAccount(ValidationLogicImpl.java:301)
at org.sakaiproject.site.tool.helper.participant.impl.SiteAddParticipantHandler.processConfirmContinue(SiteAddParticipantHandler.java:770)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)
at uk.org.ponder.reflect.ReflectiveCache.invokeMethod(ReflectiveCache.java:141)
at uk.org.ponder.mapping.support.DARApplier.invokeBeanMethod(DARApplier.java:179)
at uk.org.ponder.rsf.state.support.RSVCApplier.invokeAction(RSVCApplier.java:218)
at uk.org.ponder.rsf.processor.support.RSFActionHandler$1.run(RSFActionHandler.java:189)
at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:25)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.lockUUPP(BasicScopedAlterationWrapper.java:73)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.lockUUPP(BasicScopedAlterationWrapper.java:80)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.invokeRunnable(BasicScopedAlterationWrapper.java:64)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$65f67722.invokeRunnable(<generated>)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627)
at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$65f67722.invokeRunnable(<generated>)
at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:29)
at uk.org.ponder.util.CollectingRunnableInvoker.invokeWrappers(CollectingRunnableInvoker.java:22)
at uk.org.ponder.util.CollectingRunnableInvoker.invokeRunnable(CollectingRunnableInvoker.java:14)
at uk.org.ponder.rsf.processor.support.RSFActionHandler.handle(RSFActionHandler.java:165)
at uk.org.ponder.rsf.processor.support.RSFActionHandler$$FastClassByCGLIB$$e3b6899d.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627)
at uk.org.ponder.rsf.processor.support.RSFActionHandler$$EnhancerByCGLIB$$dc218e5d.handle(<generated>)
at uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handlePost(RootHandlerBeanBase.java:125)
at uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handle(RootHandlerBeanBase.java:82)
at sun.reflect.GeneratedMethodAccessor1917.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)
at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:553)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.access$000(RSACBeanLocatorImpl.java:75)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl$1.run(RSACBeanLocatorImpl.java:449)
at uk.org.ponder.rsac.RSACErrorBridge.invokeRunnable(RSACErrorBridge.java:38)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:447)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getLocalBean(RSACBeanLocatorImpl.java:348)
at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getBean(RSACBeanLocatorImpl.java:379)
at uk.org.ponder.rsac.support.PerRequestInfo$1.locateBean(PerRequestInfo.java:49)
at uk.ac.cam.caret.sakai.rsf.servlet.ReasonableSakaiServlet.service(ReasonableSakaiServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.help(ActiveToolComponent.java:583)
at org.sakaiproject.cheftool.ToolServlet.sendToHelper(ToolServlet.java:677)
at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:221)
at org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1168)
at org.sakaiproject.cheftool.ToolServlet.doPost(ToolServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:513)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1500)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:214)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:97)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:74)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1290)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:657)
... 110 more
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("SAK"."VALIDATIONACCOUNT_ITEM"."FIRST_NAME")

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 118 more

is incorporated by

Activity

Show:

Neal Caidin February 13, 2014 at 10:26 AM

This does not appear to be a blocker for Sakai 10, though it would be nice to get in. Setting as incorporated by and closing this one.

Sam Ottenhoff February 13, 2014 at 9:22 AM

Discussed on CLE Team call. Large patch is

Brian Baillargeon September 20, 2013 at 10:58 AM

Incorporated

Details

Priority

Affects versions

Components

Assignee

Reporter

Environment

Sakai trunk nightly - Oracle - Built: 09/20/13 08:00 - Sakai Revision: 129866 (Kernel 2.10-SNAPSHOT)- Server sakai-nightly.uits.iupui.edu

Created September 20, 2013 at 10:09 AM
Updated July 1, 2014 at 7:47 AM
Resolved February 13, 2014 at 10:26 AM