You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/04/21 10:51:16 UTC
[tomcat] branch master updated: Fix saving of context.xml file from
Manager app
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new 1a03823 Fix saving of context.xml file from Manager app
1a03823 is described below
commit 1a0382392e318854ec84e3981d30cec35bc4f347
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 001e73b..96f28d3 100644
--- a/java/org/apache/catalina/manager/LocalStrings.properties
+++ b/java/org/apache/catalina/manager/LocalStrings.properties
@@ -165,6 +165,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 5c87831..44f0db5 100644
--- a/java/org/apache/catalina/manager/ManagerServlet.java
+++ b/java/org/apache/catalina/manager/ManagerServlet.java
@@ -711,11 +711,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(sm.getString("managerServlet.error.storeContextConfig", 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 8708fe9..3d3cba1 100644
--- a/java/org/apache/catalina/storeconfig/StoreConfig.java
+++ b/java/org/apache/catalina/storeconfig/StoreConfig.java
@@ -241,26 +241,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(sm.getString("config.missingContextFile", 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 4bbb5c6..9f5f0e5 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -104,6 +104,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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org