-
Bug
-
Resolution: Fixed
-
High
-
3.0.1
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.