Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-39256

Unable to create folder with some UTF-8 characters

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: OPEN
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 12.0
    • Fix Version/s: None
    • Component/s: Kernel
    • Labels:
    • Previous Issue Keys:
      KNL-1510

      Description

      If I attempt to create a folder with a 4 byte character, then I get an error of:

      org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: java.lang.reflect.InvocationTargetException
          at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:857)
      caused by: org.sakaiproject.tool.api.ToolException: java.lang.reflect.InvocationTargetException
          at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
      caused by: java.lang.reflect.InvocationTargetException
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      caused by: java.lang.RuntimeException: SqlService.dbWrite failure
          at org.sakaiproject.db.impl.BasicSqlService.dbWriteCount(BasicSqlService.java:1152)
      caused by: java.sql.SQLException: Incorrect string value: '\xF0\xA0\x9C\x8E/' for column 'COLLECTION_ID' at row 1
          at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
          at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
          at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
          at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)
          at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1274)
          at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:780)
          at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
          at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
          at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5094)
          at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
          at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
          at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java:-1)
          at org.sakaiproject.db.impl.BasicSqlService.dbWriteCount(BasicSqlService.java:1243)
          at org.sakaiproject.db.impl.BasicSqlService.dbWriteCount(BasicSqlService.java:1152)
          at org.sakaiproject.db.impl.BasicSqlService.dbWrite(BasicSqlService.java:1137)
          at org.sakaiproject.db.impl.BasicSqlService.dbWrite(BasicSqlService.java:1066)
          at org.sakaiproject.util.BaseDbDualSingleStorage.putResource(BaseDbDualSingleStorage.java:665)
          at org.sakaiproject.content.impl.DbContentService$DbStorage.putCollection(DbContentService.java:1387)
          at org.sakaiproject.content.impl.BaseContentService.addValidPermittedCollection(BaseContentService.java:2290)
          at org.sakaiproject.content.impl.BaseContentService.addCollection(BaseContentService.java:2205)
          at org.sakaiproject.content.impl.BaseContentService.addCollection(BaseContentService.java:2240)
          at org.sakaiproject.content.cover.ContentHostingService.addCollection(ContentHostingService.java:1087)
          at org.sakaiproject.content.tool.ResourcesAction.createFolders(ResourcesAction.java:1133)
          at org.sakaiproject.content.tool.ResourcesAction.finishAction(ResourcesAction.java:8225)
          at org.sakaiproject.content.tool.ResourcesAction.buildMainPanelContext(ResourcesAction.java:4852)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at org.sakaiproject.cheftool.VelocityPortletPaneledAction.toolModeDispatch(VelocityPortletPaneledAction.java:401)
          at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
          at org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1154)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
          at org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
          at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:411)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
          at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:720)
          at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
          at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:358)
          at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
          at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:513)
          at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1487)
          at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
          at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:100)
          at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:857)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
          at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:460)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
          at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
          at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
          at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
          at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
          at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2508)
          at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2497)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
          at java.lang.Thread.run(Thread.java:745)
      
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  k1team KERNEL TEAM (Inactive)
                  Reporter:
                  buckett Matthew Buckett
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Git Source Code