This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 29c45d750fbfce7f474f3011ba0772310f366dba Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Dec 6 08:00:30 2021 +0000 writeable -> writable for consistency Excludes MBean descriptors as DTD uses writeable --- java/jakarta/el/ArrayELResolver.java | 2 +- java/jakarta/el/BeanELResolver.java | 2 +- java/jakarta/el/ListELResolver.java | 2 +- java/jakarta/el/LocalStrings.properties | 2 +- java/jakarta/el/LocalStrings_fr.properties | 2 +- java/jakarta/el/LocalStrings_ja.properties | 2 +- java/jakarta/el/LocalStrings_ko.properties | 2 +- java/jakarta/el/LocalStrings_zh_CN.properties | 2 +- java/jakarta/el/MapELResolver.java | 2 +- java/jakarta/el/ResourceBundleELResolver.java | 2 +- java/jakarta/el/StaticFieldELResolver.java | 2 +- java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java | 12 ++++++------ java/org/apache/coyote/http2/Http2UpgradeHandler.java | 4 ++-- java/org/apache/tomcat/util/net/SecureNioChannel.java | 6 +++--- .../catalina/webresources/AbstractTestFileResourceSet.java | 2 +- .../catalina/webresources/AbstractTestResourceSet.java | 6 +++--- .../org/apache/catalina/webresources/TestDirResourceSet.java | 2 +- .../catalina/webresources/TestDirResourceSetInternal.java | 2 +- .../catalina/webresources/TestDirResourceSetMount.java | 2 +- .../catalina/webresources/TestDirResourceSetReadOnly.java | 2 +- .../catalina/webresources/TestDirResourceSetVirtual.java | 2 +- .../org/apache/catalina/webresources/TestJarResourceSet.java | 2 +- .../catalina/webresources/TestJarResourceSetInternal.java | 2 +- .../catalina/webresources/TestJarResourceSetMount.java | 2 +- test/org/apache/tomcat/util/net/TestSocketBufferHandler.java | 4 ++-- webapps/docs/jndi-resources-howto.xml | 4 ++-- 26 files changed, 38 insertions(+), 38 deletions(-) diff --git a/java/jakarta/el/ArrayELResolver.java b/java/jakarta/el/ArrayELResolver.java index c9a0aff..d8d4ff9 100644 --- a/java/jakarta/el/ArrayELResolver.java +++ b/java/jakarta/el/ArrayELResolver.java @@ -84,7 +84,7 @@ public class ArrayELResolver extends ELResolver { if (this.readOnly) { throw new PropertyNotWritableException(Util.message(context, - "resolverNotWriteable", base.getClass().getName())); + "resolverNotWritable", base.getClass().getName())); } int idx = coerce(property); diff --git a/java/jakarta/el/BeanELResolver.java b/java/jakarta/el/BeanELResolver.java index 81a229b..b39fa6d 100644 --- a/java/jakarta/el/BeanELResolver.java +++ b/java/jakarta/el/BeanELResolver.java @@ -111,7 +111,7 @@ public class BeanELResolver extends ELResolver { if (this.readOnly) { throw new PropertyNotWritableException(Util.message(context, - "resolverNotWriteable", base.getClass().getName())); + "resolverNotWritable", base.getClass().getName())); } Method m = this.property(context, base, property).write(context, base); diff --git a/java/jakarta/el/ListELResolver.java b/java/jakarta/el/ListELResolver.java index de50fdf..c894bea 100644 --- a/java/jakarta/el/ListELResolver.java +++ b/java/jakarta/el/ListELResolver.java @@ -95,7 +95,7 @@ public class ListELResolver extends ELResolver { if (this.readOnly) { throw new PropertyNotWritableException(Util.message(context, - "resolverNotWriteable", base.getClass().getName())); + "resolverNotWritable", base.getClass().getName())); } int idx = coerce(property); diff --git a/java/jakarta/el/LocalStrings.properties b/java/jakarta/el/LocalStrings.properties index 2d3f492..068877d 100644 --- a/java/jakarta/el/LocalStrings.properties +++ b/java/jakarta/el/LocalStrings.properties @@ -46,7 +46,7 @@ propertyWriteError=Error writing [{1}] on type [{0}] staticFieldELResolver.methodNotFound=No matching public static method named [{0}] found on class [{1}] staticFieldELResolver.notFound=No public static field named [{0}] was found on exported class [{1}] -staticFieldELResolver.notWriteable=Writing to static fields (in this case field [{0}] on class [{1}]) is not permitted +staticFieldELResolver.notWritable=Writing to static fields (in this case field [{0}] on class [{1}]) is not permitted util.method.ambiguous=Unable to find unambiguous method: {0}.{1}({2}) util.method.notfound=Method not found: {0}.{1}({2}) diff --git a/java/jakarta/el/LocalStrings_fr.properties b/java/jakarta/el/LocalStrings_fr.properties index 1409c5b..7f72ce9 100644 --- a/java/jakarta/el/LocalStrings_fr.properties +++ b/java/jakarta/el/LocalStrings_fr.properties @@ -46,7 +46,7 @@ propertyWriteError=Erreur d''écriture [{1}] sur le type [{0}] staticFieldELResolver.methodNotFound=Aucune méthode publique et statique nommée [{0}] n''a été trouvée dans la classe [{1}] staticFieldELResolver.notFound=Aucun champ public statique nommé [{0}] n''a été trouvé dans la classe [{1}] (exportée pour Java 9+) -staticFieldELResolver.notWriteable=L''écriture dans les champs statiques (champ [{0}] dans la classe [{1}] dans le cas présent) est interdite +staticFieldELResolver.notWritable=L''écriture dans les champs statiques (champ [{0}] dans la classe [{1}] dans le cas présent) est interdite util.method.ambiguous=Impossible de trouver une méthode non ambiguë : {0}.{1}({2}) util.method.notfound=Méthode non trouvée : {0}.{1}({2}) diff --git a/java/jakarta/el/LocalStrings_ja.properties b/java/jakarta/el/LocalStrings_ja.properties index 708dbb3..cc98b00 100644 --- a/java/jakarta/el/LocalStrings_ja.properties +++ b/java/jakarta/el/LocalStrings_ja.properties @@ -46,7 +46,7 @@ propertyWriteError=タイプ[{0}]の[{1}]への書き込みエラー staticFieldELResolver.methodNotFound=クラス[{1}]に[{0}]という名前に一致するpublic staticメソッドが見つかりません。 staticFieldELResolver.notFound=(Java 9 以降ではエクスポートされた) クラス[{1}]に[{0}]という名前のpublic staticフィールドが見つかりませんでした。 -staticFieldELResolver.notWriteable=静的フィールド(この場合、クラス[{1}]のフィールド[{0})への書き込みは許可されていません。 +staticFieldELResolver.notWritable=静的フィールド(この場合、クラス[{1}]のフィールド[{0})への書き込みは許可されていません。 util.method.ambiguous=曖昧さのないメソッドを見つけることができません:{0}。{1}({2}) util.method.notfound=メソッドが見つかりません:{0}。{1}({2}) diff --git a/java/jakarta/el/LocalStrings_ko.properties b/java/jakarta/el/LocalStrings_ko.properties index 6d0fae9..d3d3dc5 100644 --- a/java/jakarta/el/LocalStrings_ko.properties +++ b/java/jakarta/el/LocalStrings_ko.properties @@ -46,7 +46,7 @@ propertyWriteError=타입 [{0}]에 [{1}]을(를) 쓰는 중 오류 발생 staticFieldELResolver.methodNotFound=클래스 [{1}]에 [{0}](이)라는 이름의 public static 메소드가 발견되지 않습니다. staticFieldELResolver.notFound=클래스 [{1}]에, [{0}](이)라는 이름의 public static 필드가 없습니다. -staticFieldELResolver.notWriteable=정적 필드들에 대해 쓰기는 허용되지 않습니다 (이번 경우는 클래스 [{1}]의 필드 [{0}]). +staticFieldELResolver.notWritable=정적 필드들에 대해 쓰기는 허용되지 않습니다 (이번 경우는 클래스 [{1}]의 필드 [{0}]). util.method.ambiguous=애매하지 않고 명백하게 메소드를 찾을 수 없습니다: {0}.{1}({2}) util.method.notfound=메소드를 찾을 수 없습니다: {0}.{1}({2}) diff --git a/java/jakarta/el/LocalStrings_zh_CN.properties b/java/jakarta/el/LocalStrings_zh_CN.properties index a4f142b..ae4905d 100644 --- a/java/jakarta/el/LocalStrings_zh_CN.properties +++ b/java/jakarta/el/LocalStrings_zh_CN.properties @@ -46,7 +46,7 @@ propertyWriteError=在类型[{0}]上写入[{1}]时出错 staticFieldELResolver.methodNotFound=在类[{1}]上找不到名为[{0}]的匹配的公共静态方法 staticFieldELResolver.notFound=(Java 9+导出)类[{1}]上找不到名为[{0}]的公共静态字段 -staticFieldELResolver.notWriteable=不允许写入静态字段(当前情况中为类[{1}]上的字段[{0}]) +staticFieldELResolver.notWritable=不允许写入静态字段(当前情况中为类[{1}]上的字段[{0}]) util.method.ambiguous=无法找到明确的方法:{0}.{1}({2}) util.method.notfound=找不到方法:{0}.{1}({2}) diff --git a/java/jakarta/el/MapELResolver.java b/java/jakarta/el/MapELResolver.java index 9526830..35d7229 100644 --- a/java/jakarta/el/MapELResolver.java +++ b/java/jakarta/el/MapELResolver.java @@ -80,7 +80,7 @@ public class MapELResolver extends ELResolver { if (this.readOnly) { throw new PropertyNotWritableException(Util.message(context, - "resolverNotWriteable", base.getClass().getName())); + "resolverNotWritable", base.getClass().getName())); } try { diff --git a/java/jakarta/el/ResourceBundleELResolver.java b/java/jakarta/el/ResourceBundleELResolver.java index e9d0ceb..6050d32 100644 --- a/java/jakarta/el/ResourceBundleELResolver.java +++ b/java/jakarta/el/ResourceBundleELResolver.java @@ -74,7 +74,7 @@ public class ResourceBundleELResolver extends ELResolver { if (base instanceof ResourceBundle) { context.setPropertyResolved(base, property); throw new PropertyNotWritableException(Util.message(context, - "resolverNotWriteable", base.getClass().getName())); + "resolverNotWritable", base.getClass().getName())); } } diff --git a/java/jakarta/el/StaticFieldELResolver.java b/java/jakarta/el/StaticFieldELResolver.java index d0de03c..365b979 100644 --- a/java/jakarta/el/StaticFieldELResolver.java +++ b/java/jakarta/el/StaticFieldELResolver.java @@ -74,7 +74,7 @@ public class StaticFieldELResolver extends ELResolver { String name = (String) property; throw new PropertyNotWritableException(Util.message(context, - "staticFieldELResolver.notWriteable", name, + "staticFieldELResolver.notWritable", name, clazz.getName())); } } diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java index 94114a2..a63f470 100644 --- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java @@ -205,7 +205,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { Integer.toString(len), Boolean.valueOf(finished))); } // Need to check this now since sending end of stream will change this. - boolean writeable = stream.canWrite(); + boolean writable = stream.canWrite(); byte[] header = new byte[9]; ByteUtil.setThreeBytes(header, 0, len); header[3] = FrameType.DATA.getIdByte(); @@ -216,7 +216,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); } } - if (writeable) { + if (writable) { ByteUtil.set31Bits(header, 5, stream.getIdAsInt()); int orgLimit = data.limit(); data.limit(data.position() + len); @@ -328,7 +328,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { boolean finished = (frameSize == sendfile.left) && sendfile.stream.getCoyoteResponse().getTrailerFields() == null; // Need to check this now since sending end of stream will change this. - boolean writeable = sendfile.stream.canWrite(); + boolean writable = sendfile.stream.canWrite(); byte[] header = new byte[9]; ByteUtil.setThreeBytes(header, 0, frameSize); header[3] = FrameType.DATA.getIdByte(); @@ -339,7 +339,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); } } - if (writeable) { + if (writable) { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeHandler.writeBody", connectionId, sendfile.stream.getIdAsString(), Integer.toString(frameSize), Boolean.valueOf(finished))); @@ -408,7 +408,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { boolean finished = (frameSize == sendfile.left) && sendfile.stream.getCoyoteResponse().getTrailerFields() == null; // Need to check this now since sending end of stream will change this. - boolean writeable = sendfile.stream.canWrite(); + boolean writable = sendfile.stream.canWrite(); byte[] header = new byte[9]; ByteUtil.setThreeBytes(header, 0, frameSize); header[3] = FrameType.DATA.getIdByte(); @@ -419,7 +419,7 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); } } - if (writeable) { + if (writable) { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeHandler.writeBody", connectionId, sendfile.stream.getIdAsString(), Integer.toString(frameSize), Boolean.valueOf(finished))); diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index f61f921..fcb05b0 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -762,7 +762,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH reduceOverheadCount(FrameType.DATA); // Need to check this now since sending end of stream will change this. - boolean writeable = stream.canWrite(); + boolean writable = stream.canWrite(); byte[] header = new byte[9]; ByteUtil.setThreeBytes(header, 0, len); header[3] = FrameType.DATA.getIdByte(); @@ -773,7 +773,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); } } - if (writeable) { + if (writable) { ByteUtil.set31Bits(header, 5, stream.getIdAsInt()); synchronized (socketWrapper) { try { diff --git a/java/org/apache/tomcat/util/net/SecureNioChannel.java b/java/org/apache/tomcat/util/net/SecureNioChannel.java index e3fc746..34b13ae 100644 --- a/java/org/apache/tomcat/util/net/SecureNioChannel.java +++ b/java/org/apache/tomcat/util/net/SecureNioChannel.java @@ -361,7 +361,7 @@ public class SecureNioChannel extends NioChannel { } handshakeComplete = false; boolean isReadable = false; - boolean isWriteable = false; + boolean isWritable = false; boolean handshaking = true; Selector selector = null; SelectionKey key = null; @@ -369,7 +369,7 @@ public class SecureNioChannel extends NioChannel { sslEngine.beginHandshake(); handshakeStatus = sslEngine.getHandshakeStatus(); while (handshaking) { - int hsStatus = this.handshake(isReadable, isWriteable); + int hsStatus = this.handshake(isReadable, isWritable); switch (hsStatus) { case -1 : throw new EOFException(sm.getString("channel.nio.ssl.eofDuringHandshake")); @@ -389,7 +389,7 @@ public class SecureNioChannel extends NioChannel { throw new SocketTimeoutException(sm.getString("channel.nio.ssl.timeoutDuringHandshake")); } isReadable = key.isReadable(); - isWriteable = key.isWritable(); + isWritable = key.isWritable(); } } } catch (IOException x) { diff --git a/test/org/apache/catalina/webresources/AbstractTestFileResourceSet.java b/test/org/apache/catalina/webresources/AbstractTestFileResourceSet.java index fb24aff..d61c15b 100644 --- a/test/org/apache/catalina/webresources/AbstractTestFileResourceSet.java +++ b/test/org/apache/catalina/webresources/AbstractTestFileResourceSet.java @@ -64,7 +64,7 @@ public abstract class AbstractTestFileResourceSet extends AbstractTestResourceSe } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return !readOnly; } diff --git a/test/org/apache/catalina/webresources/AbstractTestResourceSet.java b/test/org/apache/catalina/webresources/AbstractTestResourceSet.java index 095781e..ce4c31b 100644 --- a/test/org/apache/catalina/webresources/AbstractTestResourceSet.java +++ b/test/org/apache/catalina/webresources/AbstractTestResourceSet.java @@ -38,7 +38,7 @@ public abstract class AbstractTestResourceSet { protected WebResourceRoot resourceRoot; protected abstract WebResourceRoot getWebResourceRoot(); - protected abstract boolean isWriteable(); + protected abstract boolean isWritable(); public String getMount() { return ""; @@ -399,7 +399,7 @@ public abstract class AbstractTestResourceSet { @Test public final void testMkdirNew() { String newDirName = getNewDirName(); - if (isWriteable()) { + if (isWritable()) { Assert.assertTrue(resourceRoot.mkdir(getMount() + "/" + newDirName)); File file = new File(getBaseDir(), newDirName); @@ -472,7 +472,7 @@ public abstract class AbstractTestResourceSet { public final void testWrite() { String newFileName = getNewFileName(); InputStream is = new ByteArrayInputStream("test".getBytes()); - if (isWriteable()) { + if (isWritable()) { Assert.assertTrue(resourceRoot.write( getMount() + "/" + newFileName, is, false)); File file = new File(getBaseDir(), newFileName); diff --git a/test/org/apache/catalina/webresources/TestDirResourceSet.java b/test/org/apache/catalina/webresources/TestDirResourceSet.java index 33a20cf..f636c18 100644 --- a/test/org/apache/catalina/webresources/TestDirResourceSet.java +++ b/test/org/apache/catalina/webresources/TestDirResourceSet.java @@ -60,7 +60,7 @@ public class TestDirResourceSet extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return true; } diff --git a/test/org/apache/catalina/webresources/TestDirResourceSetInternal.java b/test/org/apache/catalina/webresources/TestDirResourceSetInternal.java index 108fc77..ffb7a6d 100644 --- a/test/org/apache/catalina/webresources/TestDirResourceSetInternal.java +++ b/test/org/apache/catalina/webresources/TestDirResourceSetInternal.java @@ -58,7 +58,7 @@ public class TestDirResourceSetInternal extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return true; } diff --git a/test/org/apache/catalina/webresources/TestDirResourceSetMount.java b/test/org/apache/catalina/webresources/TestDirResourceSetMount.java index dc413c9..9282669 100644 --- a/test/org/apache/catalina/webresources/TestDirResourceSetMount.java +++ b/test/org/apache/catalina/webresources/TestDirResourceSetMount.java @@ -59,7 +59,7 @@ public class TestDirResourceSetMount extends AbstractTestResourceSetMount { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return true; } diff --git a/test/org/apache/catalina/webresources/TestDirResourceSetReadOnly.java b/test/org/apache/catalina/webresources/TestDirResourceSetReadOnly.java index e8e0a58..02ba3b2 100644 --- a/test/org/apache/catalina/webresources/TestDirResourceSetReadOnly.java +++ b/test/org/apache/catalina/webresources/TestDirResourceSetReadOnly.java @@ -34,7 +34,7 @@ public class TestDirResourceSetReadOnly extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return false; } diff --git a/test/org/apache/catalina/webresources/TestDirResourceSetVirtual.java b/test/org/apache/catalina/webresources/TestDirResourceSetVirtual.java index bf79b28..02c7736 100644 --- a/test/org/apache/catalina/webresources/TestDirResourceSetVirtual.java +++ b/test/org/apache/catalina/webresources/TestDirResourceSetVirtual.java @@ -76,7 +76,7 @@ public class TestDirResourceSetVirtual extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return true; } diff --git a/test/org/apache/catalina/webresources/TestJarResourceSet.java b/test/org/apache/catalina/webresources/TestJarResourceSet.java index ed6c65f..8aa14c9 100644 --- a/test/org/apache/catalina/webresources/TestJarResourceSet.java +++ b/test/org/apache/catalina/webresources/TestJarResourceSet.java @@ -36,7 +36,7 @@ public class TestJarResourceSet extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return false; } diff --git a/test/org/apache/catalina/webresources/TestJarResourceSetInternal.java b/test/org/apache/catalina/webresources/TestJarResourceSetInternal.java index 1eb15f4..2718849 100644 --- a/test/org/apache/catalina/webresources/TestJarResourceSetInternal.java +++ b/test/org/apache/catalina/webresources/TestJarResourceSetInternal.java @@ -36,7 +36,7 @@ public class TestJarResourceSetInternal extends AbstractTestResourceSet { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return false; } diff --git a/test/org/apache/catalina/webresources/TestJarResourceSetMount.java b/test/org/apache/catalina/webresources/TestJarResourceSetMount.java index 8d3eeef..31a04cd 100644 --- a/test/org/apache/catalina/webresources/TestJarResourceSetMount.java +++ b/test/org/apache/catalina/webresources/TestJarResourceSetMount.java @@ -34,7 +34,7 @@ public class TestJarResourceSetMount extends AbstractTestResourceSetMount { } @Override - protected boolean isWriteable() { + protected boolean isWritable() { return false; } diff --git a/test/org/apache/tomcat/util/net/TestSocketBufferHandler.java b/test/org/apache/tomcat/util/net/TestSocketBufferHandler.java index 5e979a8..048c182 100644 --- a/test/org/apache/tomcat/util/net/TestSocketBufferHandler.java +++ b/test/org/apache/tomcat/util/net/TestSocketBufferHandler.java @@ -58,7 +58,7 @@ public class TestSocketBufferHandler { @Test - public void testReturnWhenWriteable() { + public void testReturnWhenWritable() { SocketBufferHandler sbh = new SocketBufferHandler(8, 8, direct); sbh.configureReadBufferForWrite(); @@ -71,7 +71,7 @@ public class TestSocketBufferHandler { @Test(expected = BufferOverflowException.class) - public void testReturnWhenWriteableAndFull() { + public void testReturnWhenWritableAndFull() { SocketBufferHandler sbh = new SocketBufferHandler(8, 8, direct); sbh.configureReadBufferForWrite(); diff --git a/webapps/docs/jndi-resources-howto.xml b/webapps/docs/jndi-resources-howto.xml index 4b40094..2eac0b9 100644 --- a/webapps/docs/jndi-resources-howto.xml +++ b/webapps/docs/jndi-resources-howto.xml @@ -475,7 +475,7 @@ public class MyBean2 { </p> <p>The <code>readonly</code> attribute is optional and defaults to - <code>true</code> if not supplied. If the XML is writeable then it will be + <code>true</code> if not supplied. If the XML is writable then it will be written to when Tomcat starts. <strong>WARNING:</strong> When the file is written it will inherit the default file permissions for the user Tomcat is running as. Ensure that these are appropriate to maintain the security @@ -595,7 +595,7 @@ create table user_roles ( documentation for further instructions.</p> <p>The <code>readonly</code> attribute is optional and defaults to - <code>true</code> if not supplied. If the database is writeable then changes + <code>true</code> if not supplied. If the database is writable then changes made through the Tomcat management to the <code>UserDatabase</code> can be persisted to the database using the <code>save</code> operation.</p> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org