Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-17039

Confluence upgrade failed due to database case sensitivity

    XMLWordPrintable

Details

    Description

      Summary

      Occasionally upgrade will fail for some customers due to case sensitivity.

      For example:

      2009-09-23 10:57:35,759 ERROR [Main Thread] [confluence.upgrade.upgradetask.ResizeProfileImagesUpgradeTask] doUpgrade SQL error occured whilst performing ResizeProfileImagesUpgradeTask
      com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'databaseName.OS_USER' doesn't exist
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      

      In reality the table OS_USER actually exists in lower case.

      The upgrade fail because the query to be executed is (see line 57 of confluence.upgrade.upgradetask.ResizeProfileImagesUpgradeTask for Confluence 3.0.1):

      57.   ResultSet rs = statement.executeQuery("select OS_USER.USERNAME, OS_PROPERTYENTRY.STRING_VAL from OS_USER, OS_PROPERTYENTRY where OS_USER.ID = OS_PROPERTYENTRY.ENTITY_ID and OS_PROPERTYENTRY.ENTITY_KEY = '" + UserPreferencesKeys.PROPERTY_USER_PROFILE_PICTURE + "'");
      

      The upgrade task in this case (and other cases involving schema update) need to be smart enough to identify what database casing is used so the upgrade can proceed smoothly.

      Attachments

        Activity

          People

            bnguyen Brian Nguyen (Inactive)
            rhartono Roy Hartono [Atlassian]
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: