You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by li...@apache.org on 2023/02/17 03:31:08 UTC
[tomcat] branch main updated: Many improvements.
This is an automated email from the ASF dual-hosted git repository.
lihan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new f9fa97a537 Many improvements.
f9fa97a537 is described below
commit f9fa97a5372117bcc58ae699e929065dfac74f1f
Author: lihan <li...@apache.org>
AuthorDate: Fri Feb 17 11:30:53 2023 +0800
Many improvements.
---
java/org/apache/coyote/ajp/AbstractAjpProtocol.java | 6 +-----
java/org/apache/coyote/ajp/AjpMessage.java | 2 +-
.../org/apache/tomcat/util/digester/CallMethodRule.java | 17 ++++++-----------
java/org/apache/tomcat/util/json/JSONFilter.java | 4 ++--
java/org/apache/tomcat/util/net/SSLUtilBase.java | 2 +-
.../ciphers/OpenSSLCipherConfigurationParser.java | 6 +++---
.../apache/tomcat/util/scan/AbstractInputStreamJar.java | 4 ++--
.../tomcat/util/xreflection/ReflectionProperty.java | 8 +++-----
.../tomcat/util/xreflection/SetPropertyClass.java | 6 ++----
9 files changed, 21 insertions(+), 34 deletions(-)
diff --git a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
index b62fe988a8..537a1d0b04 100644
--- a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
+++ b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
@@ -182,11 +182,7 @@ public abstract class AbstractAjpProtocol<S> extends AbstractProtocol<S> {
private int packetSize = Constants.MAX_PACKET_SIZE;
public int getPacketSize() { return packetSize; }
public void setPacketSize(int packetSize) {
- if (packetSize < Constants.MAX_PACKET_SIZE) {
- this.packetSize = Constants.MAX_PACKET_SIZE;
- } else {
- this.packetSize = packetSize;
- }
+ this.packetSize = Math.max(packetSize, Constants.MAX_PACKET_SIZE);
}
diff --git a/java/org/apache/coyote/ajp/AjpMessage.java b/java/org/apache/coyote/ajp/AjpMessage.java
index 14d7e53cb9..f49a099125 100644
--- a/java/org/apache/coyote/ajp/AjpMessage.java
+++ b/java/org/apache/coyote/ajp/AjpMessage.java
@@ -398,7 +398,7 @@ public class AjpMessage {
StringBuilder sb = new StringBuilder();
for (int i = start; i < start + 16 ; i++) {
if (i < len + 4) {
- sb.append(hex(buf[i]) + " ");
+ sb.append(hex(buf[i])).append(" ");
} else {
sb.append(" ");
}
diff --git a/java/org/apache/tomcat/util/digester/CallMethodRule.java b/java/org/apache/tomcat/util/digester/CallMethodRule.java
index bd65535dbc..3110c4450b 100644
--- a/java/org/apache/tomcat/util/digester/CallMethodRule.java
+++ b/java/org/apache/tomcat/util/digester/CallMethodRule.java
@@ -19,6 +19,8 @@ package org.apache.tomcat.util.digester;
import org.apache.tomcat.util.IntrospectionUtils;
import org.xml.sax.Attributes;
+import java.util.Arrays;
+
/**
* <p>Rule implementation that calls a method on an object on the stack
* (normally the top/parent object), passing arguments collected from
@@ -96,9 +98,7 @@ public class CallMethodRule extends Rule {
this.paramTypes = new Class[] { String.class };
} else {
this.paramTypes = new Class[paramCount];
- for (int i = 0; i < this.paramTypes.length; i++) {
- this.paramTypes[i] = String.class;
- }
+ Arrays.fill(this.paramTypes, String.class);
}
}
@@ -135,16 +135,14 @@ public class CallMethodRule extends Rule {
* for a <code>boolean</code> parameter)
*/
public CallMethodRule(int targetOffset, String methodName, int paramCount,
- Class<?> paramTypes[]) {
+ Class<?>[] paramTypes) {
this.targetOffset = targetOffset;
this.methodName = methodName;
this.paramCount = paramCount;
if (paramTypes == null) {
this.paramTypes = new Class[paramCount];
- for (int i = 0; i < this.paramTypes.length; i++) {
- this.paramTypes[i] = String.class;
- }
+ Arrays.fill(this.paramTypes, String.class);
} else {
this.paramTypes = new Class[paramTypes.length];
System.arraycopy(paramTypes, 0, this.paramTypes, 0, this.paramTypes.length);
@@ -232,10 +230,7 @@ public class CallMethodRule extends Rule {
// Push an array to capture the parameter values if necessary
if (paramCount > 0) {
- Object parameters[] = new Object[paramCount];
- for (int i = 0; i < parameters.length; i++) {
- parameters[i] = null;
- }
+ Object[] parameters = new Object[paramCount];
digester.pushParams(parameters);
}
diff --git a/java/org/apache/tomcat/util/json/JSONFilter.java b/java/org/apache/tomcat/util/json/JSONFilter.java
index cb255dc41b..b5992d95d6 100644
--- a/java/org/apache/tomcat/util/json/JSONFilter.java
+++ b/java/org/apache/tomcat/util/json/JSONFilter.java
@@ -34,12 +34,12 @@ public class JSONFilter {
* MUST be escaped.
*/
char[] chars = input.toCharArray();
- StringBuffer escaped = null;
+ StringBuilder escaped = null;
int lastUnescapedStart = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] < 0x20 || chars[i] == 0x22 || chars[i] == 0x5c) {
if (escaped == null) {
- escaped = new StringBuffer(chars.length + 20);
+ escaped = new StringBuilder(chars.length + 20);
}
if (lastUnescapedStart < i) {
escaped.append(input.subSequence(lastUnescapedStart, i));
diff --git a/java/org/apache/tomcat/util/net/SSLUtilBase.java b/java/org/apache/tomcat/util/net/SSLUtilBase.java
index c1988834e4..72161e9238 100644
--- a/java/org/apache/tomcat/util/net/SSLUtilBase.java
+++ b/java/org/apache/tomcat/util/net/SSLUtilBase.java
@@ -297,7 +297,7 @@ public abstract class SSLUtilBase implements SSLUtil {
char[] keyPassArray = keyPass.toCharArray();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
- if (kmf.getProvider().getInfo().indexOf("FIPS") != -1) {
+ if (kmf.getProvider().getInfo().contains("FIPS")) {
// FIPS doesn't like ANY wrapping nor key manipulation.
if (keyAlias != null) {
log.warn(sm.getString("sslUtilBase.aliasIgnored", keyAlias));
diff --git a/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java b/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
index ee1c6c6db1..a32bb33c2d 100644
--- a/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
+++ b/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
@@ -536,7 +536,7 @@ public class OpenSSLCipherConfigurationParser {
// COMPLEMENTOFDEFAULT is also not exactly as defined by the docs
LinkedHashSet<Cipher> complementOfDefault = filterByKeyExchange(all, new HashSet<>(Arrays.asList(KeyExchange.EDH,KeyExchange.EECDH)));
complementOfDefault = filterByAuthentication(complementOfDefault, Collections.singleton(Authentication.aNULL));
- complementOfDefault.removeAll(aliases.get(eNULL));
+ aliases.get(eNULL).forEach(complementOfDefault::remove);
complementOfDefault.addAll(aliases.get(Constants.SSL_PROTO_SSLv2));
complementOfDefault.addAll(aliases.get(EXPORT));
complementOfDefault.addAll(aliases.get(DES));
@@ -564,7 +564,7 @@ public class OpenSSLCipherConfigurationParser {
static void moveToEnd(final LinkedHashSet<Cipher> ciphers, final Collection<Cipher> toBeMovedCiphers) {
List<Cipher> movedCiphers = new ArrayList<>(toBeMovedCiphers);
movedCiphers.retainAll(ciphers);
- ciphers.removeAll(movedCiphers);
+ movedCiphers.forEach(ciphers::remove);
ciphers.addAll(movedCiphers);
}
@@ -582,7 +582,7 @@ public class OpenSSLCipherConfigurationParser {
}
static void remove(final Set<Cipher> ciphers, final String alias) {
- ciphers.removeAll(aliases.get(alias));
+ aliases.get(alias).forEach(ciphers::remove);
}
static LinkedHashSet<Cipher> strengthSort(final LinkedHashSet<Cipher> ciphers) {
diff --git a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
index 148f57ab58..fa685ba81d 100644
--- a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
+++ b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
@@ -67,9 +67,9 @@ public abstract class AbstractInputStreamJar implements Jar {
// Skip base entries where there is a multi-release entry
// Skip multi-release entries that are not being used
while (entry != null &&
- (mrMap.keySet().contains(entry.getName()) ||
+ (mrMap.containsKey(entry.getName()) ||
entry.getName().startsWith("META-INF/versions/") &&
- !mrMap.values().contains(entry.getName()))) {
+ !mrMap.containsValue(entry.getName()))) {
entry = jarInputStream.getNextJarEntry();
}
} else {
diff --git a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
index f6b94ef71c..2036af9f2a 100644
--- a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
+++ b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
@@ -116,11 +116,9 @@ final class ReflectionProperty implements Comparable<ReflectionProperty> {
@Override
public String toString() {
- final StringBuffer sb = new StringBuffer("ReflectionProperty{");
- sb.append("name='").append(propertyName).append('\'');
- sb.append(", type=").append(propertyType);
- sb.append('}');
- return sb.toString();
+ return "ReflectionProperty{" + "name='" + propertyName + '\'' +
+ ", type=" + propertyType +
+ '}';
}
@Override
diff --git a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
index a0a0146048..2011510432 100644
--- a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
+++ b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
@@ -118,10 +118,8 @@ final class SetPropertyClass implements Comparable<SetPropertyClass> {
@Override
public String toString() {
- final StringBuffer sb = new StringBuffer("SetPropertyClass{");
- sb.append("clazz=").append(clazz.getName());
- sb.append('}');
- return sb.toString();
+ return "SetPropertyClass{" + "clazz=" + clazz.getName() +
+ '}';
}
public void addProperty(ReflectionProperty property) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: [tomcat] branch main updated: Many improvements.
Posted by Mark Thomas <ma...@apache.org>.
On 18/02/2023 05:43, Han Li wrote:
>
>
>> On Feb 17, 2023, at 17:17, Rémy Maucherat <re...@apache.org> wrote:
>>
>> On Fri, Feb 17, 2023 at 4:32 AM <li...@apache.org> wrote:
>>> - ciphers.removeAll(movedCiphers);
>>> + movedCiphers.forEach(ciphers::remove);
>>
>> Ok for some of them maybe, but I don't understand why one this is better.
>
> See:https://www.baeldung.com/java-hashset-removeall-performance <https://www.baeldung.com/java-hashset-removeall-performance>
> It’s just possible to avoid some potential performance issues. So i replaced old writing style with this. :)
Those performance issues are when the collection the items are being
removed from is an ArrayList. These all look to be LinkedHashSet.
There may be a very small gain from these changes as it skips some logic
in removeAll() that isn't necessary in these instances.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: [tomcat] branch main updated: Many improvements.
Posted by Han Li <li...@apache.org>.
> On Feb 17, 2023, at 17:17, Rémy Maucherat <re...@apache.org> wrote:
>
> On Fri, Feb 17, 2023 at 4:32 AM <li...@apache.org> wrote:
>> - ciphers.removeAll(movedCiphers);
>> + movedCiphers.forEach(ciphers::remove);
>
> Ok for some of them maybe, but I don't understand why one this is better.
See:https://www.baeldung.com/java-hashset-removeall-performance <https://www.baeldung.com/java-hashset-removeall-performance>
It’s just possible to avoid some potential performance issues. So i replaced old writing style with this. :)
Han
> Rémy
>
>> ciphers.addAll(movedCiphers);
>> }
>>
>> @@ -582,7 +582,7 @@ public class OpenSSLCipherConfigurationParser {
>> }
>>
>> static void remove(final Set<Cipher> ciphers, final String alias) {
>> - ciphers.removeAll(aliases.get(alias));
>> + aliases.get(alias).forEach(ciphers::remove);
>> }
>>
>> static LinkedHashSet<Cipher> strengthSort(final LinkedHashSet<Cipher> ciphers) {
>> diff --git a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
>> index 148f57ab58..fa685ba81d 100644
>> --- a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
>> +++ b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
>> @@ -67,9 +67,9 @@ public abstract class AbstractInputStreamJar implements Jar {
>> // Skip base entries where there is a multi-release entry
>> // Skip multi-release entries that are not being used
>> while (entry != null &&
>> - (mrMap.keySet().contains(entry.getName()) ||
>> + (mrMap.containsKey(entry.getName()) ||
>> entry.getName().startsWith("META-INF/versions/") &&
>> - !mrMap.values().contains(entry.getName()))) {
>> + !mrMap.containsValue(entry.getName()))) {
>> entry = jarInputStream.getNextJarEntry();
>> }
>> } else {
>> diff --git a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
>> index f6b94ef71c..2036af9f2a 100644
>> --- a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
>> +++ b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
>> @@ -116,11 +116,9 @@ final class ReflectionProperty implements Comparable<ReflectionProperty> {
>>
>> @Override
>> public String toString() {
>> - final StringBuffer sb = new StringBuffer("ReflectionProperty{");
>> - sb.append("name='").append(propertyName).append('\'');
>> - sb.append(", type=").append(propertyType);
>> - sb.append('}');
>> - return sb.toString();
>> + return "ReflectionProperty{" + "name='" + propertyName + '\'' +
>> + ", type=" + propertyType +
>> + '}';
>> }
>>
>> @Override
>> diff --git a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
>> index a0a0146048..2011510432 100644
>> --- a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
>> +++ b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
>> @@ -118,10 +118,8 @@ final class SetPropertyClass implements Comparable<SetPropertyClass> {
>>
>> @Override
>> public String toString() {
>> - final StringBuffer sb = new StringBuffer("SetPropertyClass{");
>> - sb.append("clazz=").append(clazz.getName());
>> - sb.append('}');
>> - return sb.toString();
>> + return "SetPropertyClass{" + "clazz=" + clazz.getName() +
>> + '}';
>> }
>>
>> public void addProperty(ReflectionProperty property) {
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
Re: [tomcat] branch main updated: Many improvements.
Posted by Rémy Maucherat <re...@apache.org>.
On Fri, Feb 17, 2023 at 4:32 AM <li...@apache.org> wrote:
> - ciphers.removeAll(movedCiphers);
> + movedCiphers.forEach(ciphers::remove);
Ok for some of them maybe, but I don't understand why one this is better.
Rémy
> ciphers.addAll(movedCiphers);
> }
>
> @@ -582,7 +582,7 @@ public class OpenSSLCipherConfigurationParser {
> }
>
> static void remove(final Set<Cipher> ciphers, final String alias) {
> - ciphers.removeAll(aliases.get(alias));
> + aliases.get(alias).forEach(ciphers::remove);
> }
>
> static LinkedHashSet<Cipher> strengthSort(final LinkedHashSet<Cipher> ciphers) {
> diff --git a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
> index 148f57ab58..fa685ba81d 100644
> --- a/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
> +++ b/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
> @@ -67,9 +67,9 @@ public abstract class AbstractInputStreamJar implements Jar {
> // Skip base entries where there is a multi-release entry
> // Skip multi-release entries that are not being used
> while (entry != null &&
> - (mrMap.keySet().contains(entry.getName()) ||
> + (mrMap.containsKey(entry.getName()) ||
> entry.getName().startsWith("META-INF/versions/") &&
> - !mrMap.values().contains(entry.getName()))) {
> + !mrMap.containsValue(entry.getName()))) {
> entry = jarInputStream.getNextJarEntry();
> }
> } else {
> diff --git a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
> index f6b94ef71c..2036af9f2a 100644
> --- a/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
> +++ b/java/org/apache/tomcat/util/xreflection/ReflectionProperty.java
> @@ -116,11 +116,9 @@ final class ReflectionProperty implements Comparable<ReflectionProperty> {
>
> @Override
> public String toString() {
> - final StringBuffer sb = new StringBuffer("ReflectionProperty{");
> - sb.append("name='").append(propertyName).append('\'');
> - sb.append(", type=").append(propertyType);
> - sb.append('}');
> - return sb.toString();
> + return "ReflectionProperty{" + "name='" + propertyName + '\'' +
> + ", type=" + propertyType +
> + '}';
> }
>
> @Override
> diff --git a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
> index a0a0146048..2011510432 100644
> --- a/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
> +++ b/java/org/apache/tomcat/util/xreflection/SetPropertyClass.java
> @@ -118,10 +118,8 @@ final class SetPropertyClass implements Comparable<SetPropertyClass> {
>
> @Override
> public String toString() {
> - final StringBuffer sb = new StringBuffer("SetPropertyClass{");
> - sb.append("clazz=").append(clazz.getName());
> - sb.append('}');
> - return sb.toString();
> + return "SetPropertyClass{" + "clazz=" + clazz.getName() +
> + '}';
> }
>
> public void addProperty(ReflectionProperty property) {
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org