Hello,
i recently updated our test confluence instance from 6.4 to 6.13.1 and ran into a problem which in our case was not that big deal regarding the outcome but could result in not beeing able to use collaborative editing feature on hosted confluence servers in some situations.
After upgrading i noticed a warning regarding ${confluence.context.path}#synchrony-proxy.xml beeing ignored which made me worry a bit.
Further analysis made me forget about it somewhat.
It seems that this variable is not correctly templated when installing or upgrading server.xml file.
If I understand the article https://confluence.atlassian.com/doc/possible-confluence-and-synchrony-configurations-958779064.html correclty collaborative editing would only be an issue when using fallback and not "Direct to synchrony with reverse proxy" configuration i.e. not having /synchrony proxied for direct connect.
Having that variable in server.xml file present would result in creating a file ${confluence.context.path}#synchrony-proxy.xml which cant be resolved internally then since the fallback would be /confluence/synchrony-proxy.
Workaround
My workaround was to delete the deployment descriptors present in <confluence-install>/conf/Standalone/localhost/. I had multiple in them.
* ${confluence.context.path}#synchrony-proxy.xml
* synchrony-proxy.xml
* confluence#synchrony-proxy.xml
I believe the second one was copyied over from the old installation and the first one created by the upgrade. Last file was created because i manually replaced the variable with the context path of the confluence instance.
Furthermore i noticed that resolving context-path in setenv.sh using confluence-context-path-extractor.jar sometimes just outputs ${confluence.context.path}.
To be on the save side I modified the setenv.sh script to not use the jar and use some awk magic instead extracting the value from confluence.cfg.xml reading out the path to this file from confluence-init.properties
_CONFLUENCE_HOME=$(grep -e ^confluence.home confluence/WEB-INF/classes/confluence-init.properties | cut -d "=" -f2 | awk '{$1=$1;print}')
_CONFLUENCE_CONTEXT_PATH=$(sed -n 's:<property name="confluence.webapp.context.path">\(.*\)</property>:\1:p' ${_CONFLUENCE_HOME}/confluence.cfg.xml | awk '{$1=$1;print}')
#CONFLUENCE_CONTEXT_PATH=`$JRE_HOME/bin/java -jar $CATALINA_HOME/bin/confluence-context-path-extractor.jar $CATALINA_HOME`
CONFLUENCE_CONTEXT_PATH=${_CONFLUENCE_CONTEXT_PATH}
I did not investigate this any further and i sadly do not know under which circumstances this happens so I can only guess.
I called the jar manually multiple times with confluence user via su and at one point only the variable printed out but not the value. Maybe it was some file permission issue.
For now i will leave it that way since using bash gives back the result a bit faster
Im looking forward to get a reply maybe the workaround can help others who had the same problem or want to get rid of the warning in the log file.
Best wishes,
Rüdiger Huppertz