dotCMS / core

Headless/Hybrid Content Management System for Enterprises
http://dotcms.com
Other
857 stars 467 forks source link

Edit Container: Data too long for column 'notes' #3252

Closed mabouza closed 11 years ago

mabouza commented 11 years ago

Saving a container with the Notes longer than 255 chars fails without an error message.

If you try to save the container and have a long notes content, the page doesn't have any validation to tell you that you only have 255 chars, and when you save nothing happens and the page goes back to Edit Container. In the logs we get the error below because the field is a varchar(255).

The page should display the appropriate error message on save.

[2013-07-08 15:10:20,996]  WARN   59208445 - SQL Error: 1406, SQLState: 22001 (util.JDBCExceptionReporter)
[2013-07-08 15:10:20,996] ERROR   59208445 - Data truncation: Data too long for column 'notes' at row 1 (util.JDBCExceptionReporter)
[2013-07-08 15:10:20,996] ERROR   59208445 - Could not synchronize database state with session (impl.SessionImpl)
[2013-07-08 15:10:20,996]  WARN   59208445 - com.dotmarketing.exception.DotHibernateException: Unable to save/update Object to Hibernate Session  (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 * com.dotmarketing.exception.DotHibernateException: Unable to save/update Object to Hibernate Session  (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.db.HibernateUtil.saveOrUpdate(HibernateUtil.java:460) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.factories.WebAssetFactory.createAsset(WebAssetFactory.java:268) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.portlets.containers.action.EditContainerAction._saveWebAsset(EditContainerAction.java:547) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.portlets.containers.action.EditContainerAction.processAction(EditContainerAction.java:150) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:127) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portlet.StrutsPortlet.processAction(StrutsPortlet.java:116) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:130) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:231) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:248) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:92) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:157) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:275) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:501) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:135) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.filters.CMSFilter.doFilter(CMSFilter.java:122) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.filters.AutoLoginFilter.doFilter(AutoLoginFilter.java:61) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.cms.urlmap.filters.URLMapFilter.doFilter(URLMapFilter.java:87) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.filters.TimeMachineFilter.doFilter(TimeMachineFilter.java:143) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.wiley.wdp.dotcms.wmbase.filters.UserFilter.doFilter(UserFilter.java:82) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.wiley.wdp.dotcms.base.logging.LoggingSupportFilter.doFilter(LoggingSupportFilter.java:50) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.wiley.wdp.dotcms.user.WdpAutoLoginFilter.doFilter(WdpAutoLoginFilter.java:61) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.filters.CharsetEncodingFilter.doFilter(CharsetEncodingFilter.java:140) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at java.lang.Thread.run(Thread.java:679) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 + Caused by: net.sf.hibernate.exception.GenericJDBCException: could not insert: [com.dotmarketing.portlets.containers.model.Container#0700e634-86d6-4c54-9c72-d16280f38d82] (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:90) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:79) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.persister.AbstractEntityPersister.convert(AbstractEntityPersister.java:1331) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.persister.NormalizedEntityPersister.insert(NormalizedEntityPersister.java:464) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.persister.NormalizedEntityPersister.insert(NormalizedEntityPersister.java:426) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:37) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2449) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2435) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2392) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2261) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.dotmarketing.db.HibernateUtil.saveOrUpdate(HibernateUtil.java:458) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    ... 65 more (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 + Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'notes' at row 1 (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    at net.sf.hibernate.persister.NormalizedEntityPersister.insert(NormalizedEntityPersister.java:454) (action.EditContainerAction)
[2013-07-08 15:10:20,996]  WARN   59208445 +    ... 72 more (action.EditContainerAction)
jkshapiro commented 11 years ago

As noted in #2850, we need to prevent this on the client side. Maybe use HTML's "maxlength" attribute for input fields and let the web browser do the work.

Other related tickets: #1792, #3080, #250.

jtesser commented 11 years ago

merged to master and master-2.5

bryanboza commented 11 years ago

Fixed, now we only have 255 characters for the notes field