Fix rename operation

If the destination does not exist, Files.move throws an exception so it
is not fully equivalent to the File.renameTo method that was used before
which returns false in that case.
diff --git a/java/org/apache/catalina/startup/HostConfig.java b/java/org/apache/catalina/startup/HostConfig.java
index b34ea58..864a742 100644
--- a/java/org/apache/catalina/startup/HostConfig.java
+++ b/java/org/apache/catalina/startup/HostConfig.java
@@ -1297,7 +1297,9 @@
             migration.execute();
 
             // Use rename
-            Files.move(destination.toPath(), tempOld.toPath());
+            if (destination.exists()) {
+                Files.move(destination.toPath(), tempOld.toPath());
+            }
             Files.move(tempNew.toPath(), destination.toPath());
             ExpandWar.delete(tempOld);
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index e547467..2317d9e 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -104,6 +104,14 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 10.0.4 (markt)" rtext="in development">
+  <subsection name="Catalina">
+    <changelog>
+      <fix>
+        Fix rename operation throwing an exception during the webapp migration
+        process. (remm)
+      </fix>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 10.0.3 (markt)" rtext="release in progress">
   <subsection name="Catalina">