[ 
https://issues.apache.org/jira/browse/ROL-1480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Glen Mazza reassigned ROL-1480:
-------------------------------

    Assignee: Glen Mazza  (was: Roller Unassigned)
    
> Poor handling of database exception in blog Settings screen
> -----------------------------------------------------------
>
>                 Key: ROL-1480
>                 URL: https://issues.apache.org/jira/browse/ROL-1480
>             Project: Roller
>          Issue Type: Bug
>          Components: Configuration & Settings
>    Affects Versions: 3.1
>         Environment: WebSphere Platform 6.0 [BASE 6.0.2.15 cf150636.04]
>            Reporter: Andy Stevens
>            Assignee: Glen Mazza
>            Priority: Minor
>
> If I edit the General Settings for a blog and type more than 255 characters 
> into the Description field, when I try to submit the changes I get an error 
> page that reads
> Unexpected Exception
> Roller has encountered and logged an unexpected exception.
> Checking the server log file, I find the following messages:
> [16/07/07 11:53:08:747 BST] 00000020 ServletWrappe E   SRVE0068E: Could not 
> invoke the service() method on servlet action. Exception thrown : 
> javax.servlet.ServletException
>       at 
> org.apache.roller.ui.authoring.struts.actions.WebsiteFormAction.update(WebsiteFormAction.java:215)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled
>  Code))
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled
>  Code))
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled
>  Code))
>       at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
>       at 
> org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)
>       at 
> org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:196)
> ...
> ---- Begin backtrace for Nested Throwables
> org.apache.roller.RollerException
>       at 
> org.apache.roller.business.hibernate.HibernatePersistenceStrategy.flush(HibernatePersistenceStrategy.java:228)
>       at 
> org.apache.roller.business.hibernate.HibernateRollerImpl.flush(HibernateRollerImpl.java:109)
>       at 
> org.apache.roller.ui.authoring.struts.actions.WebsiteFormAction.update(WebsiteFormAction.java:184)
> ...
> --- ROOT CAUSE ---
> org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch 
> update
>       at 
> org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
>       at 
> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
>       at 
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>       at 
> org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
>       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
>       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
>       at 
> org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
>       at 
> org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
>       at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009)
>       at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:356)
>       at 
> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
>       at 
> org.apache.roller.business.hibernate.HibernatePersistenceStrategy.flush(HibernatePersistenceStrategy.java:222)
>       at 
> org.apache.roller.business.hibernate.HibernateRollerImpl.flush(HibernateRollerImpl.java:109)
>       at 
> org.apache.roller.ui.authoring.struts.actions.WebsiteFormAction.update(WebsiteFormAction.java:184)
> ...
> Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for 
> column 'description' at row 1
>       at 
> com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:647)
>       at 
> com.mysql.jdbc.jdbc2.optional.StatementWrapper.executeBatch(StatementWrapper.java:681)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.pmiExecuteBatch(WSJdbcStatement.java:1173)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:516)
>       at 
> org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
>       at 
> org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
> This should be handled in a much more friendly fashion.
> Given that textarea's rows & cols attributes only determine the size and 
> don't restrict the amount of text that can be entered, the action should 
> validate the length of this value before trying to save it.  Ideally, there'd 
> be some javascript checking it client-side as well, before allowing the form 
> to be submitted.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to