This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 4815be414ab82af37fca351422b9af82a175aa15 Author: Mark Thomas <ma...@apache.org> AuthorDate: Tue Apr 21 11:50:51 2020 +0100 Fix saving of context.xml file from Manager app --- .../catalina/manager/LocalStrings.properties | 1 + .../apache/catalina/manager/ManagerServlet.java | 11 +++++--- .../apache/catalina/storeconfig/StoreConfig.java | 31 +++++++++------------- .../catalina/storeconfig/mbeans-descriptors.xml | 2 +- webapps/docs/changelog.xml | 8 ++++++ 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/java/org/apache/catalina/manager/LocalStrings.properties b/java/org/apache/catalina/manager/LocalStrings.properties index 34a63a5..91c3697 100644 --- a/java/org/apache/catalina/manager/LocalStrings.properties +++ b/java/org/apache/catalina/manager/LocalStrings.properties @@ -150,6 +150,7 @@ managerServlet.resourcesType=OK - Listed global resources of type [{0}] managerServlet.saveFail=FAIL - Configuration save failed: [{0}] managerServlet.saved=OK - Server configuration saved managerServlet.savedContext=OK - Context [{0}] configuration saved +managerServlet.savedContextFail=FAIL - Context [{0}] configuration save failed managerServlet.serverInfo=OK - Server info\n\ Tomcat Version: [{0}]\n\ OS Name: [{1}]\n\ diff --git a/java/org/apache/catalina/manager/ManagerServlet.java b/java/org/apache/catalina/manager/ManagerServlet.java index 73f3593..41ca512 100644 --- a/java/org/apache/catalina/manager/ManagerServlet.java +++ b/java/org/apache/catalina/manager/ManagerServlet.java @@ -703,11 +703,14 @@ public class ManagerServlet extends HttpServlet implements ContainerServlet { return; } try { - mBeanServer.invoke(storeConfigOname, "store", + Boolean result = (Boolean) mBeanServer.invoke(storeConfigOname, "store", new Object[] {context}, - new String [] { "java.lang.String"}); - writer.println(smClient.getString("managerServlet.savedContext", - path)); + new String [] { "org.apache.catalina.Context"}); + if (result.booleanValue()) { + writer.println(smClient.getString("managerServlet.savedContext", path)); + } else { + writer.println(smClient.getString("managerServlet.savedContextFail", path)); + } } catch (Exception e) { log("managerServlet.save[" + path + "]", e); writer.println(smClient.getString("managerServlet.exception", diff --git a/java/org/apache/catalina/storeconfig/StoreConfig.java b/java/org/apache/catalina/storeconfig/StoreConfig.java index 8a0fcad..0f0ddcd 100644 --- a/java/org/apache/catalina/storeconfig/StoreConfig.java +++ b/java/org/apache/catalina/storeconfig/StoreConfig.java @@ -253,26 +253,21 @@ public class StoreConfig implements IStoreConfig { */ @Override public synchronized boolean store(Context aContext) { - URL configFile = aContext.getConfigFile(); - if (configFile != null) { - try { - StoreDescription desc = null; - desc = getRegistry().findDescription(aContext.getClass()); - if (desc != null) { - boolean old = desc.isStoreSeparate(); - try { - desc.setStoreSeparate(true); - desc.getStoreFactory().store(null, -2, aContext); - } finally { - desc.setStoreSeparate(old); - } + try { + StoreDescription desc = null; + desc = getRegistry().findDescription(aContext.getClass()); + if (desc != null) { + boolean old = desc.isStoreSeparate(); + try { + desc.setStoreSeparate(true); + desc.getStoreFactory().store(null, -2, aContext); + } finally { + desc.setStoreSeparate(old); } - return true; - } catch (Exception e) { - log.error(sm.getString("config.storeContextError", aContext.getName()), e); } - } else { - log.error("Missing configFile at Context " + aContext.getPath()); + return true; + } catch (Exception e) { + log.error(sm.getString("config.storeContextError", aContext.getName()), e); } return false; } diff --git a/java/org/apache/catalina/storeconfig/mbeans-descriptors.xml b/java/org/apache/catalina/storeconfig/mbeans-descriptors.xml index bec2fc2..f0f402d 100644 --- a/java/org/apache/catalina/storeconfig/mbeans-descriptors.xml +++ b/java/org/apache/catalina/storeconfig/mbeans-descriptors.xml @@ -70,7 +70,7 @@ impact="ACTION" returnType="void" > <parameter name="context" description="Context" - type="org.apache.catalina.context"/> + type="org.apache.catalina.Context"/> </operation> <operation name="store" description="Store Host" diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index eadcc1f..a36aebc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,14 @@ </update> </changelog> </subsection> + <subseciton name="Web applications"> + <changelog> + <fix> + Fix the saving of a Context configuration file via the scripting + interface of the Manager web application. (markt) + </fix> + </changelog> + </subseciton> <subsection name="Other"> <changelog> <update> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org