Details
-
Bug
-
Resolution: Fixed
-
Major
-
4.2
-
None
-
Unknown
-
N/A
-
N/A
-
Description
This happens with RDBMS that does not handle transactions like HSQLDB and Mysql (MyIsam) since part of the XObject is saved but not the author property. With other RDBMS the save should fail (the XObject is not added).
2012-10-08 15:27:13,298 [http://localhost:8080/xwiki/bin/commentadd/Main/NewPage] WARN c.x.x.w.XWikiAction - Uncaught exception: Error number 3201 in 3: Exception while saving document xwiki:Main.NewPage Wrapped Exception: Failed to commit or rollback transaction. Root cause [] com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving document xwiki:Main.NewPage Wrapped Exception: Failed to commit or rollback transaction. Root cause [] at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:709) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:177) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:170) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:1358) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.web.CommentAddAction.action(CommentAddAction.java:92) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:230) [xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116) [xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) [struts-1.2.9.jar:1.2.9] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) [struts-1.2.9.jar:1.2.9] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) [struts-1.2.9.jar:1.2.9] at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [struts-1.2.9.jar:1.2.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [servlet-api-2.5.jar:2.5] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5.jar:2.5] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1352) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:120) [xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144) [xwiki-platform-wysiwyg-server-4.3-SNAPSHOT.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66) [xwiki-platform-webdav-server-4.3-20121002.104232-35.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208) [xwiki-platform-container-servlet-4.3-20121002.103750-35.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111) [xwiki-platform-container-servlet-4.3-20121002.103750-35.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) [jetty-security-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) [jetty-servlet-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.Server.handle(Server.java:346) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823) [jetty-http-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220) [jetty-http-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) [jetty-server-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535) [jetty-io-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) [jetty-io-7.4.5.v20110725.jar:7.4.5.v20110725] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) [jetty-util-7.4.5.v20110725.jar:7.4.5.v20110725] at java.lang.Thread.run(Thread.java:680) [na:1.6.0_35] Caused by: org.hibernate.HibernateException: Failed to commit or rollback transaction. Root cause [] at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction(XWikiHibernateBaseStore.java:938) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:699) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] ... 46 common frames omitted Caused by: org.hibernate.exception.DataException: could not insert: [com.xpn.xwiki.objects.StringProperty] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2454) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction(XWikiHibernateBaseStore.java:931) ~[xwiki-platform-oldcore-4.3-20121002.103905-35.jar:na] ... 47 common frames omitted Caused by: java.sql.SQLDataException: data exception: string data, right truncation at org.hsqldb.jdbc.Util.sqlException(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.jdbc.Util.sqlException(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) ~[commons-dbcp-1.3.jar:1.3] at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) ~[commons-dbcp-1.3.jar:1.3] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2437) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final] ... 58 common frames omitted Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.types.CharacterType.castOrConvertToType(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.types.CharacterType.convertToType(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.StatementDML.getInsertData(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.StatementInsert.getResult(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.StatementDMQL.execute(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.Session.executeCompiledStatement(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] at org.hsqldb.Session.execute(Unknown Source) ~[hsqldb-2.2.9.jar:2.2.9] ... 63 common frames omitted
Very simple fix:
Index: ../xwiki-platform/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/commentsinline.vm =================================================================== --- ../xwiki-platform/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/commentsinline.vm (revision 6ecda350fd563689d9f964b78f3958fb0bd0d497) +++ ../xwiki-platform/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/commentsinline.vm (revision ) @@ -182,7 +182,7 @@ <label>$msg.get('core.viewers.comments.add.guestName.prompt') $xwiki.getUserName($xcontext.user)</label> <input type="hidden" name="${xCommentClass}_author" value="$xcontext.user"/> #else - <label for="${xCommentClass}_author">$msg.get('core.viewers.comments.add.guestName.prompt') <input type="text" id="${xCommentClass}_author" name="${xCommentClass}_author" value="$author"/></label> + <label for="${xCommentClass}_author">$msg.get('core.viewers.comments.add.guestName.prompt') <input type="text" id="${xCommentClass}_author" name="${xCommentClass}_author" value="$author" maxlength="255" /></label> <strong><a href='$xwiki.getURL('XWiki.XWikiLogin', 'login', "xredirect=$escapetool.url($xwiki.relativeRequestURL)")'>$msg.get('login')</a></strong> #end ## CSRF prevention Index: ../xwiki-platform/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/web/CommentAddAction.java =================================================================== --- ../xwiki-platform/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/web/CommentAddAction.java (revision 6ecda350fd563689d9f964b78f3958fb0bd0d497) +++ ../xwiki-platform/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/web/CommentAddAction.java (revision ) @@ -35,7 +35,7 @@ * Action used to post a comment on a page, adds a comment object to the document and saves it, requires comment right * but not edit right. * - * @version $Id$ + * @version $Id: dd076b1bcb8edb7d4f1058deac2d644748a37438 $ */ public class CommentAddAction extends XWikiAction { @@ -79,6 +79,7 @@ while (author.startsWith(USER_SPACE_PREFIX)) { author = StringUtils.removeStart(author, USER_SPACE_PREFIX); } + author = author.substring(0, Math.min(author.length(), 255)); object.set(AUTHOR_PROPERTY_NAME, author, context); } else { // A registered user must always post with his name.