Archiva doesn't suppost UTF-8 databases in Mysql
------------------------------------------------

                 Key: MRM-227
                 URL: http://jira.codehaus.org/browse/MRM-227
             Project: Archiva
          Issue Type: Bug
    Affects Versions: 1.0-beta-1
         Environment: Linux jtbox01 2.4.21-37.0.1.ELsmp #1 SMP Wed Jan 11 
18:35:45 EST 2006 i686 athlon i386 GNU/Linux
jdk1.5.0_07 + apache-tomcat-5.5.17 + mysql-5.0.22
            Reporter: Arnaud Heritier


If the mysql database is created with Collation utf8_unicode_ci I receive this 
error when tables are created :
{code}
2006-11-17 14:29:13,782 [http-8080-Processor25] ERROR RDBMS                     
     - Error thrown executing CREATE TABLE `OPERATIONS`
(
    `NAME` VARCHAR(256) BINARY NOT NULL,
    `DESCRIPTION` VARCHAR(256) BINARY NULL,
    `PERMANENT` BIT NOT NULL,
    `RESOURCE_REQUIRED` BIT NOT NULL,
    PRIMARY KEY (`NAME`)
) ENGINE=INNODB : Specified key was too long; max key length is 765 bytes
java.sql.SQLException: Specified key was too long; max key length is 765 bytes
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2927)
        at com.mysql.jdbc.Statement.execute(Statement.java:535)
        at 
org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:261)
        at 
org.jpox.store.rdbms.table.AbstractTable.executeDdlStatement(AbstractTable.java:561)
        at 
org.jpox.store.rdbms.table.AbstractTable.executeDdlStatementList(AbstractTable.java:516)
        at 
org.jpox.store.rdbms.table.AbstractTable.create(AbstractTable.java:244)
        at 
org.jpox.store.rdbms.table.AbstractTable.exists(AbstractTable.java:287)
        at 
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:3006)
        at 
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2540)
        at 
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2397)
        at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:603)
        at org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:617)
        at org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:1016)
        at org.jpox.store.rdbms.RDBMSManager.getExtent(RDBMSManager.java:1134)
        at 
org.jpox.AbstractPersistenceManager.getExtent(AbstractPersistenceManager.java:2216)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getAllObjects(JdoTool.java:199)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getAllObjects(JdoTool.java:182)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.triggerInit(JdoTool.java:131)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getPersistenceManager(JdoTool.java:118)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getObjectById(JdoTool.java:236)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.objectExistsById(JdoTool.java:283)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoRbacManager.roleExists(JdoRbacManager.java:124)
        at 
org.codehaus.plexus.rbac.profile.AbstractRoleProfile.getRole(AbstractRoleProfile.java:236)
        at 
org.codehaus.plexus.rbac.profile.DefaultRoleProfileManager.getRole(DefaultRoleProfileManager.java:72)
        at 
org.codehaus.plexus.security.ui.web.checks.security.RequiredRolesEnvironmentCheck.validateEnvironment(RequiredRolesEnvironmentCheck.java:64)
        at 
org.codehaus.plexus.security.ui.web.interceptor.EnvironmentCheckInterceptor.init(EnvironmentCheckInterceptor.java:78)
        at 
org.codehaus.plexus.xwork.PlexusObjectFactory.buildInterceptor(PlexusObjectFactory.java:101)
        at 
com.opensymphony.xwork.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:48)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:702)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:569)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:582)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:603)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:204)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:676)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
        at 
com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)
        at 
com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)
        at 
com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:57)
        at 
com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
        at 
com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
        at 
com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
        at 
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

2006-11-17 14:29:13,783 [http-8080-Processor25] ERROR SCHEMA                    
     - An exception was thrown while adding/validating class(es) : Specified 
key was too long; max key length is 765 bytes
java.sql.SQLException: Specified key was too long; max key length is 765 bytes
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2927)
        at com.mysql.jdbc.Statement.execute(Statement.java:535)
        at 
org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:261)
        at 
org.jpox.store.rdbms.table.AbstractTable.executeDdlStatement(AbstractTable.java:561)
        at 
org.jpox.store.rdbms.table.AbstractTable.executeDdlStatementList(AbstractTable.java:516)
        at 
org.jpox.store.rdbms.table.AbstractTable.create(AbstractTable.java:244)
        at 
org.jpox.store.rdbms.table.AbstractTable.exists(AbstractTable.java:287)
        at 
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:3006)
        at 
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2540)
        at 
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2397)
        at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:603)
        at org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:617)
        at org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:1016)
        at org.jpox.store.rdbms.RDBMSManager.getExtent(RDBMSManager.java:1134)
        at 
org.jpox.AbstractPersistenceManager.getExtent(AbstractPersistenceManager.java:2216)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getAllObjects(JdoTool.java:199)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getAllObjects(JdoTool.java:182)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.triggerInit(JdoTool.java:131)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getPersistenceManager(JdoTool.java:118)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.getObjectById(JdoTool.java:236)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoTool.objectExistsById(JdoTool.java:283)
        at 
org.codehaus.plexus.security.authorization.rbac.store.jdo.JdoRbacManager.roleExists(JdoRbacManager.java:124)
        at 
org.codehaus.plexus.rbac.profile.AbstractRoleProfile.getRole(AbstractRoleProfile.java:236)
        at 
org.codehaus.plexus.rbac.profile.DefaultRoleProfileManager.getRole(DefaultRoleProfileManager.java:72)
        at 
org.codehaus.plexus.security.ui.web.checks.security.RequiredRolesEnvironmentCheck.validateEnvironment(RequiredRolesEnvironmentCheck.java:64)
        at 
org.codehaus.plexus.security.ui.web.interceptor.EnvironmentCheckInterceptor.init(EnvironmentCheckInterceptor.java:78)
        at 
org.codehaus.plexus.xwork.PlexusObjectFactory.buildInterceptor(PlexusObjectFactory.java:101)
        at 
com.opensymphony.xwork.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:48)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:702)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:569)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:582)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:603)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:204)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:676)
        at 
com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
        at 
com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)
        at 
com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)
        at 
com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:57)
        at 
com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
        at 
com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
        at 
com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
        at 
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

2006-11-17 14:29:13,783 [http-8080-Processor25] ERROR SCHEMA                    
     - java.sql.SQLException: Specified key was too long; max key length is 765 
bytes
...
{code}
Even if I configure the driver with :
{code}
<Context path="/archiva" 
docBase="/projets/JTB/jtbdev02/base_archiva/archiva-webapp-1.0-SNAPSHOT.war" 
debug="0">
    <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
            username="archiva"
            password="?????????"
            driverClassName="com.mysql.jdbc.Driver"
            
url="jdbc:mysql://jtbox01.fr.world.socgen:13306/archiva?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
</Context>
{code}
If I don't use a multibytes encoding, it's working well (with latin1_general_ci)

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

        

Reply via email to