You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2006/12/20 03:13:47 UTC

[jira] Updated: (MRM-227) Archiva doesn't suppost UTF-8 databases in Mysql

     [ 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&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