jira.codehaus.org

  • Log In Access more options
    • Online Help
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What?s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Archiva
  • MRM-227

Archiva doesn't suppost UTF-8 databases in Mysql

  • Log In
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Duplicate
  • Affects Version/s: 1.0-alpha-1
  • Fix Version/s: 1.0-alpha-2
  • Component/s: Users/Security
  • Labels:
    None
  • 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

Description

If the mysql database is created with Collation utf8_unicode_ci I receive this error when tables are created :

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
...

Even if I configure the driver with :

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

If I don't use a multibytes encoding, it's working well (with latin1_general_ci)

Issue Links

is duplicated by

Bug - A problem which impairs or prevents the functions of the product. MRM-415 [MySQL] Specified key was too long; max key length is 765 bytes

  • Major - Major loss of function.
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.
is related to

Bug - A problem which impairs or prevents the functions of the product. MRM-729 [MySQL] Specified key was too long; max key length is 765 bytes - in redback

  • Major - Major loss of function.
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.
relates to

Improvement - An improvement or enhancement to an existing feature or task. CONTINUUM-1113 Continuum doesn't work with MySQL

  • Major - Major loss of function.
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.

Improvement - An improvement or enhancement to an existing feature or task. CONTINUUM-1368 CLONE -Continuum doesn't work with MySQL

  • Major - Major loss of function.
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
Hide
Permalink
Arnaud Heritier added a comment - 17/Nov/06 8:01 AM

Seems to be a problem in mysql : http://www.jpox.org/servlet/forum/viewthread?thread=3396

Show
Arnaud Heritier added a comment - 17/Nov/06 8:01 AM Seems to be a problem in mysql : http://www.jpox.org/servlet/forum/viewthread?thread=3396
Hide
Permalink
Carlos Sanchez added a comment - 09/Jan/07 6:46 PM

Use MySQL > 5.0.3 with a non UTF8 database until MySQL bug http://bugs.mysql.com/bug.php?id=25480 is fixed, or change the application.xml as follows:

Add inside component org.codehaus.plexus.jdo.JdoFactory, configuration, otherProperties:

<!-- this is required for some MySQL versions and configurations, see CONTINUUM-1113 -->
<property>
<name>org.jpox.rdbms.stringDefaultLength</name>
<value>255</value>
</property>

Show
Carlos Sanchez added a comment - 09/Jan/07 6:46 PM Use MySQL > 5.0.3 with a non UTF8 database until MySQL bug http://bugs.mysql.com/bug.php?id=25480 is fixed, or change the application.xml as follows: Add inside component org.codehaus.plexus.jdo.JdoFactory, configuration, otherProperties: <!-- this is required for some MySQL versions and configurations, see CONTINUUM-1113 --> <property> <name>org.jpox.rdbms.stringDefaultLength</name> <value>255</value> </property>
Hide
Permalink
Carlos Sanchez added a comment - 26/Apr/07 5:48 PM

Seems that MySQL decided it's not a bug in their side, although it's really inconsistent
http://bugs.mysql.com/bug.php?id=25480

Show
Carlos Sanchez added a comment - 26/Apr/07 5:48 PM Seems that MySQL decided it's not a bug in their side, although it's really inconsistent http://bugs.mysql.com/bug.php?id=25480
Hide
Permalink
Joakim Erdfelt added a comment - 18/Jun/07 4:23 PM

Closing as duplicate of MRM-415

Show
Joakim Erdfelt added a comment - 18/Jun/07 4:23 PM Closing as duplicate of MRM-415

People

  • Assignee:
    Joakim Erdfelt
    Reporter:
    Arnaud Heritier
Vote (0)
Watch (0)

Dates

  • Created:
    17/Nov/06 8:00 AM
    Updated:
    05/Mar/08 9:43 AM
    Resolved:
    18/Jun/07 4:23 PM
  • Atlassian JIRA (v5.0.4#731-sha1:3aa7374)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for Codehaus. Try JIRA - bug tracking software for your team.