[ http://jira.codehaus.org/browse/MRM-227?page=all ]
Brett Porter updated MRM-227: ----------------------------- Fix Version/s: 1.0 > 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 > 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 > Fix For: 1.0 > > > 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&useUnicode=true&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