[ 
http://mifosforge.jira.com/browse/MIFOS-4184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kay Chau updated MIFOS-4184:
----------------------------

    Fix Version/s: Elsie F
                   Elsie F - Iteration 10
         Assignee: Udai Gupta

Udai, can you investigate?  This seems like the change log cannot accomodate 
the lengths of our Question Group fields

> Problem with question groups functionality: Data too long for column 
> change_log_detail.field_name
> -------------------------------------------------------------------------------------------------
>
>                 Key: MIFOS-4184
>                 URL: http://mifosforge.jira.com/browse/MIFOS-4184
>             Project: mifos
>          Issue Type: Bug
>          Components: QuestionGroups/Surveys/PPI
>    Affects Versions: Release 2.0.0
>            Reporter: Milan Patel
>            Assignee: Udai Gupta
>            Priority: Major
>             Fix For: Elsie F - Iteration 10, Elsie F
>
>
> I created a new client, and the client creation process includes a survey 
> based on Question Groups.
> Upon submitting the client to save to database, I get an error on 
> front-end:"An unhandled error has occurred. Please contact your system 
> administrator."
> Log has error message at bottom of this description--significantly stating 
> "com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for 
> column 'field_name' at row 1"
> Upon reviewing MYSQL insert statement, I find following transactions:
> insert into change_log (entity_id, entity_type, modifier_name, changed_by, 
> changed_date) values (1201, 1, 'mifos', 1, '2010-11-19')
> insert into change_log_detail (field_name, old_value, new_value, 
> change_log_id) values ('Activos y Pasivos/Cuales son sus activos (del negocio 
> y de la casa)?/Vehiculos (Valor, COP)', '-', '600000', 10)
> insert into change_log_detail (field_name, old_value, new_value, 
> change_log_id) values ('Activos y Pasivos/Otras preguntas/Tiene relacion con 
> el sector financiero?', '-', 'No', 10)
> insert into change_log_detail (field_name, old_value, new_value, 
> change_log_id) values ('Activos y Pasivos/Cuales son sus activos (del negocio 
> y de la casa)?/Maquinaria  y equipo (Valor, COP)', '-', '400000', 10)
> Note 3 insert statement-- value for field "field_name" is 'Activos y 
> Pasivos/Otras preguntas/Tiene relacion con el sector financiero?'.  This is 
> 102 characters, where field itself is set to 100.   If statement is run 
> directly in MYSQL workbench, statement is inserted, but field value is 
> truncated by 2 characters.
> This problem is related to Question Groups, as the insert statement is 
> related to a response from question groups--the field name itself is in 
> format question group name / section heading /question.  
> I am trying workaround of expanding the database field 
> change_log_detail.field_name, but I don't know if this is sensible in a 
> production environment or not.  
> Nov 19, 2010 11:19:02 AM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet Controller threw exception
> com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 
> 'field_name' at row 1
>       at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3561)
>       at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3495)
>       at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
>       at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
>       at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2693)
>       at 
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2102)
>       at 
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2395)
>       at 
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2313)
>       at 
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2298)
>       at 
> com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
>       at 
> org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
>       at 
> org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
>       at 
> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
>       at 
> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2836)
>       at 
> org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
>       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
>       at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:677)
>       at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:669)
>       at 
> org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:252)
>       at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
>       at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
>       at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
>       at 
> org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:425)
>       at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:362)
>       at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:338)
>       at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
>       at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:476)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:354)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
>       at 
> org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
>       at 
> org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
>       at 
> org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
>       at 
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
>       at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
>       at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
>       at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
>       at 
> org.mifos.framework.components.audit.persistence.AuditPersistence.save(AuditPersistence.java:42)
>       at 
> org.mifos.framework.components.audit.business.AuditLog.save(AuditLog.java:94)
>       at 
> org.mifos.framework.components.audit.business.service.AuditLogServiceImpl.addAuditLogRegistry(AuditLogServiceImpl.java:94)
>       at 
> org.mifos.platform.questionnaire.service.QuestionnaireServiceFacadeImpl.saveResponses(QuestionnaireServiceFacadeImpl.java:140)
>       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 
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>       at 
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>       at 
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>       at 
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
>       at $Proxy40.saveResponses(Unknown Source)
>       at 
> org.mifos.application.questionnaire.struts.QuestionnaireFlowAdapter.saveResponses(QuestionnaireFlowAdapter.java:122)
>       at 
> org.mifos.customers.client.struts.action.ClientCustAction.create(ClientCustAction.java:469)
>       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 
> org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
>       at 
> org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
>       at 
> org.mifos.framework.struts.action.BaseAction.execute(BaseAction.java:161)
>       at 
> org.mifos.framework.struts.action.MifosRequestProcessor.processActionPerform(MifosRequestProcessor.java:195)
>       at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>       at 
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>       at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.mifos.servlet.filters.MifosAccessLogFilter.doFilter(MifosAccessLogFilter.java:72)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.mifos.framework.persistence.DatabaseInitFilter.doFilter(DatabaseInitFilter.java:51)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
>       at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
>       at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
>       at 
> org.mifos.security.authentication.MifosLegacyUsernamePasswordAuthenticationFilter.doFilter(MifosLegacyUsernamePasswordAuthenticationFilter.java:102)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
>       at 
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
>       at 
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>       at 
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>       at java.lang.Thread.run(Thread.java:662)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://mifosforge.jira.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Mifos-issues mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-issues

Reply via email to