[{ALLOW view All}]
[{ALLOW edit Authenticated}]

[{TableOfContents }]


!Upgrade OpenCms from 9.0.1 to 10.0.1

# Download [OpenCms 10.0.1 Upgrade Wizard|http://www.opencms.org/en/modules/downloads/dl-opencms-10.0.1-upgrade-wizard.html]
# Unzip opencms-upgrade-to-10.0.1.zip
# Read file "readme.txt"

! Comments and my own instructions
1. Create backup (!)

2. After wizard step "Module Selection" I get following message
{{{
HTTP Status 500
OpenCms is not properly initialized!
Please make sure that the OpenCms setup wizard has been run once and is disabled now.
}}}

A web search suggested to "delete the contents of the tomcat work folder and run the setup again. 
This kind of error can occur, if you had a previous opencms version installed in the same servlet container."\\
=> did NOT help

There is also no hint in .../WEB-INF/logs/update.log

Another suggestion was
{{{
- Restored a backup (Web application and the CMS db) and started the CMS servlet container.
- Deselected the "Use Upload Applet" option in the OpenCMS User Preferences (as mentioned in http://mail.opencms.org/pipermail/opencms-dev/2007q1/027888.html)
- Verified the User Management >> User properties to ensure that the entry "USERPREFERENCES_workplace-generaloptionsuploadapplet at java.lang.Boolean=false"
  is not present. (as mentioned in http://lists.opencms.org/pipermail/opencms-dev/2011q2/035708.html)
- The index generation has been disabled, the files opencms.properties and cmsupdate.ori were modified as mentioned in the readme file.
}}}
=> did NOT help\\

 
Then I tried to upgrade only to 9.5. This is basically the same procedure.
=> the module update started, but never finished, so did NOT work

Then I started to analyse the logs, check 
* tomcats's /logs/catalina.log
* webapps/opencms/WEB-INF/logs/opencms.log
* webapps/opencms/WEB-INF/logs/update.log

Here I found
{{{
java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.commons.digester.Digester.setLogger(Lorg/apache/commons/logging/Log;)V" 
the class loader (instance of org/apache/tomee/catalina/TomEEWebappClassLoader) of the current class, org/opencms/configuration/CmsSetNextRule, 
and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/apache/commons/digester/Digester, 
have different Class objects for the type org/apache/commons/logging/Log used in the signature
}}}
SOLUTION:\\
In tomcat's lib folder I had commons-logging-1.1.1.jar, but in the opencms/WEB-INF/lib I had commons-logging-1.0.4.jar, commons-logging-1.1.jar, commons-logging-1.1.1.jar, commons-logging-1.1.3.jar !\\
Additionally I noticed that I have multiple versions of many jars here. I removed commons-logging-1.0.4.jar, commons-logging-1.1.jar, commons-logging-1.1.3.jar in opencms, so that it kept thesame as tomcat, which was commons-logging-1.1.1.jar.\\
=> THIS WORKED !!!

Nevertheless I deleted all minor versions of the same jar type in the opencms lib folder. It seems that the copy of the upgrade WEB-INF folder just add new versions.
This should be mentioned in the readme.txt.