On 15/09/2020 10:21, mgrigo...@apache.org wrote:
> This is an automated email from the ASF dual-hosted git repository.
> 
> mgrigorov 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 f550254  Replace "".equals(a) with a.isEmpty()
>      new 6053839  Merge pull request #356 from 
> martin-g/improvement/use-string-isempty
> f550254 is described below
> 
> commit f550254bb15e1b0cc50225aee1c3fb1ed034f552
> Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
> AuthorDate: Thu Sep 10 12:52:11 2020 +0300
> 
>     Replace "".equals(a) with a.isEmpty()

How sure are you that none of these will introduce the possibility of a
NullPointerException?

Mark

>     
>     
> https://medium.com/javarevisited/micro-optimizations-in-java-string-equals-22be19fd8416
>     Proposal for JDK: https://github.com/openjdk/jdk/pull/29
> ---
>  .../apache/catalina/ant/jmx/JMXAccessorCondition.java  |  2 +-
>  .../apache/catalina/ant/jmx/JMXAccessorCreateTask.java |  2 +-
>  java/org/apache/catalina/ant/jmx/JMXAccessorTask.java  |  2 +-
>  java/org/apache/catalina/core/ApplicationContext.java  |  2 +-
>  java/org/apache/catalina/core/StandardContext.java     |  2 +-
>  java/org/apache/catalina/core/StandardEngine.java      |  2 +-
>  java/org/apache/catalina/filters/WebdavFixFilter.java  |  2 +-
>  java/org/apache/catalina/ha/backend/TcpSender.java     |  2 +-
>  .../catalina/ha/session/JvmRouteBinderValve.java       |  2 +-
>  .../apache/catalina/manager/HTMLManagerServlet.java    |  9 +++++----
>  java/org/apache/catalina/manager/ManagerServlet.java   |  2 +-
>  .../catalina/manager/host/HostManagerServlet.java      |  2 +-
>  java/org/apache/catalina/realm/RealmBase.java          |  2 +-
>  java/org/apache/catalina/servlets/CGIServlet.java      |  8 ++++----
>  java/org/apache/catalina/session/JDBCStore.java        |  2 +-
>  .../org/apache/catalina/storeconfig/StoreRegistry.java |  2 +-
>  java/org/apache/catalina/util/ContextName.java         | 18 
> +++++++++---------
>  java/org/apache/el/MethodExpressionImpl.java           |  2 +-
>  java/org/apache/el/MethodExpressionLiteral.java        |  2 +-
>  java/org/apache/el/ValueExpressionImpl.java            |  2 +-
>  java/org/apache/el/ValueExpressionLiteral.java         |  2 +-
>  java/org/apache/el/lang/ELSupport.java                 |  7 ++++---
>  java/org/apache/el/lang/FunctionMapperImpl.java        |  2 +-
>  java/org/apache/el/util/ReflectionUtil.java            |  2 +-
>  java/org/apache/jasper/JspC.java                       |  2 +-
>  java/org/apache/jasper/compiler/Generator.java         |  2 +-
>  java/org/apache/jasper/compiler/Validator.java         |  2 +-
>  .../apache/tomcat/util/digester/SetPropertiesRule.java |  2 +-
>  java/org/apache/tomcat/util/net/SSLUtilBase.java       |  2 +-
>  .../apache/tomcat/websocket/WsWebSocketContainer.java  |  3 ++-
>  30 files changed, 49 insertions(+), 46 deletions(-)
> 
> diff --git a/java/org/apache/catalina/ant/jmx/JMXAccessorCondition.java 
> b/java/org/apache/catalina/ant/jmx/JMXAccessorCondition.java
> index b009684..4ac07c3 100644
> --- a/java/org/apache/catalina/ant/jmx/JMXAccessorCondition.java
> +++ b/java/org/apache/catalina/ant/jmx/JMXAccessorCondition.java
> @@ -149,7 +149,7 @@ public class JMXAccessorCondition extends 
> JMXAccessorConditionBase {
>       * @return true if there is no if condition, or the named property exists
>       */
>      protected boolean testIfCondition() {
> -        if (ifCondition == null || "".equals(ifCondition)) {
> +        if (ifCondition == null || ifCondition.isEmpty()) {
>              return true;
>          }
>          return getProject().getProperty(ifCondition) != null;
> diff --git a/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java 
> b/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
> index 28aab6c..558a258 100644
> --- a/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
> +++ b/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
> @@ -154,7 +154,7 @@ public class JMXAccessorCreateTask extends 
> JMXAccessorTask {
>                 }
>             }
>          }
> -        if (classLoader != null && !"".equals(classLoader)) {
> +        if (classLoader != null && !classLoader.isEmpty()) {
>              if (isEcho()) {
>                  handleOutput("create MBean " + name + " from class "
>                          + className + " with classLoader " + classLoader);
> diff --git a/java/org/apache/catalina/ant/jmx/JMXAccessorTask.java 
> b/java/org/apache/catalina/ant/jmx/JMXAccessorTask.java
> index 8d5d268..d79e471 100644
> --- a/java/org/apache/catalina/ant/jmx/JMXAccessorTask.java
> +++ b/java/org/apache/catalina/ant/jmx/JMXAccessorTask.java
> @@ -254,7 +254,7 @@ public class JMXAccessorTask extends 
> BaseRedirectorHelperTask {
>       * @return Returns the useRef.
>       */
>      public boolean isUseRef() {
> -        return ref != null && !"".equals(ref);
> +        return ref != null && !ref.isEmpty();
>      }
>  
>      /**
> diff --git a/java/org/apache/catalina/core/ApplicationContext.java 
> b/java/org/apache/catalina/core/ApplicationContext.java
> index 61981e5..06bdaa3 100644
> --- a/java/org/apache/catalina/core/ApplicationContext.java
> +++ b/java/org/apache/catalina/core/ApplicationContext.java
> @@ -1196,7 +1196,7 @@ public class ApplicationContext implements 
> ServletContext {
>          }
>  
>          for (String role : roleNames) {
> -            if (role == null || "".equals(role)) {
> +            if (role == null || role.isEmpty()) {
>                  throw new IllegalArgumentException(
>                          sm.getString("applicationContext.role.iae",
>                                  getContextPath()));
> diff --git a/java/org/apache/catalina/core/StandardContext.java 
> b/java/org/apache/catalina/core/StandardContext.java
> index e84f2b5..ce51d6c 100644
> --- a/java/org/apache/catalina/core/StandardContext.java
> +++ b/java/org/apache/catalina/core/StandardContext.java
> @@ -2136,7 +2136,7 @@ public class StandardContext extends ContainerBase
>          if (path == null || path.equals("/")) {
>              invalid = true;
>              this.path = "";
> -        } else if ("".equals(path) || path.startsWith("/")) {
> +        } else if (path.isEmpty() || path.startsWith("/")) {
>              this.path = path;
>          } else {
>              invalid = true;
> diff --git a/java/org/apache/catalina/core/StandardEngine.java 
> b/java/org/apache/catalina/core/StandardEngine.java
> index 9385369..f60c2e8 100644
> --- a/java/org/apache/catalina/core/StandardEngine.java
> +++ b/java/org/apache/catalina/core/StandardEngine.java
> @@ -485,7 +485,7 @@ public class StandardEngine extends ContainerBase 
> implements Engine {
>              if (disabled) return;
>              if (Container.ADD_CHILD_EVENT.equals(event.getType())) {
>                  Context context = (Context) event.getData();
> -                if ("".equals(context.getPath())) {
> +                if (context.getPath().isEmpty()) {
>                      // Force re-calculation and disable listener since it 
> won't
>                      // be re-used
>                      engine.defaultAccessLog.set(null);
> diff --git a/java/org/apache/catalina/filters/WebdavFixFilter.java 
> b/java/org/apache/catalina/filters/WebdavFixFilter.java
> index 9a1f86d..72a6843 100644
> --- a/java/org/apache/catalina/filters/WebdavFixFilter.java
> +++ b/java/org/apache/catalina/filters/WebdavFixFilter.java
> @@ -100,7 +100,7 @@ public class WebdavFixFilter extends GenericFilter {
>              httpResponse.sendRedirect(buildRedirect(httpRequest));
>          } else if (ua.startsWith(UA_MINIDIR_5_2_3790)) {
>              // XP 64-bit SP2
> -            if (!"".equals(httpRequest.getContextPath())) {
> +            if (!httpRequest.getContextPath().isEmpty()) {
>                  
> getServletContext().log(sm.getString("webDavFilter.xpRootContext"));
>              }
>              // Namespace issue maybe
> diff --git a/java/org/apache/catalina/ha/backend/TcpSender.java 
> b/java/org/apache/catalina/ha/backend/TcpSender.java
> index 760e1a0..5676c88 100644
> --- a/java/org/apache/catalina/ha/backend/TcpSender.java
> +++ b/java/org/apache/catalina/ha/backend/TcpSender.java
> @@ -151,7 +151,7 @@ public class TcpSender
>                  // read all the headers.
>                  String header = connectionReaders[i].readLine();
>                  int contentLength = 0;
> -                while (!"".equals(header)) {
> +                while (!header.isEmpty()) {
>                      int colon = header.indexOf(':');
>                      String headerName = header.substring(0, colon).trim();
>                      String headerValue = header.substring(colon + 1).trim();
> diff --git a/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java 
> b/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
> index 58733fb..6817c7a 100644
> --- a/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
> +++ b/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
> @@ -348,7 +348,7 @@ public class JvmRouteBinderValve extends ValveBase 
> implements ClusterValve {
>  
>          // set original sessionid at request, to allow application detect the
>          // change
> -        if (sessionIdAttribute != null && !"".equals(sessionIdAttribute)) {
> +        if (sessionIdAttribute != null && !sessionIdAttribute.isEmpty()) {
>              if (log.isDebugEnabled()) {
>                  
> log.debug(sm.getString("jvmRoute.set.orignalsessionid",sessionIdAttribute,sessionId));
>              }
> diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java 
> b/java/org/apache/catalina/manager/HTMLManagerServlet.java
> index 685353b..53e1ebc 100644
> --- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
> +++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
> @@ -443,10 +443,11 @@ public final class HTMLManagerServlet extends 
> ManagerServlet {
>                  StringBuilder tmp = new StringBuilder();
>                  tmp.append("path=");
>                  tmp.append(URLEncoder.DEFAULT.encode(displayPath, 
> StandardCharsets.UTF_8));
> -                if (ctxt.getWebappVersion().length() > 0) {
> +                final String webappVersion = ctxt.getWebappVersion();
> +                if (webappVersion != null && webappVersion.length() > 0) {
>                      tmp.append("&version=");
>                      tmp.append(URLEncoder.DEFAULT.encode(
> -                            ctxt.getWebappVersion(), 
> StandardCharsets.UTF_8));
> +                            webappVersion, StandardCharsets.UTF_8));
>                  }
>                  String pathVersion = tmp.toString();
>  
> @@ -463,10 +464,10 @@ public final class HTMLManagerServlet extends 
> ManagerServlet {
>                          + URLEncoder.DEFAULT.encode(contextPath + "/", 
> StandardCharsets.UTF_8)
>                          + "\" " + Constants.REL_EXTERNAL + ">"
>                          + Escape.htmlElementContent(displayPath) + "</a>";
> -                if ("".equals(ctxt.getWebappVersion())) {
> +                if (webappVersion == null || webappVersion.isEmpty()) {
>                      args[1] = noVersion;
>                  } else {
> -                    args[1] = 
> Escape.htmlElementContent(ctxt.getWebappVersion());
> +                    args[1] = Escape.htmlElementContent(webappVersion);
>                  }
>                  if (ctxt.getDisplayName() == null) {
>                      args[2] = "&nbsp;";
> diff --git a/java/org/apache/catalina/manager/ManagerServlet.java 
> b/java/org/apache/catalina/manager/ManagerServlet.java
> index feb7ee8..392fadc 100644
> --- a/java/org/apache/catalina/manager/ManagerServlet.java
> +++ b/java/org/apache/catalina/manager/ManagerServlet.java
> @@ -555,7 +555,7 @@ public class ManagerServlet extends HttpServlet 
> implements ContainerServlet {
>                          smClient.getString("managerServlet.findleaksList"));
>              }
>              for (String result : results) {
> -                if ("".equals(result)) {
> +                if (result.isEmpty()) {
>                      result = "/";
>                  }
>                  writer.println(result);
> diff --git a/java/org/apache/catalina/manager/host/HostManagerServlet.java 
> b/java/org/apache/catalina/manager/host/HostManagerServlet.java
> index 4d548c6..7ed209f 100644
> --- a/java/org/apache/catalina/manager/host/HostManagerServlet.java
> +++ b/java/org/apache/catalina/manager/host/HostManagerServlet.java
> @@ -411,7 +411,7 @@ public class HostManagerServlet
>          host.addLifecycleListener(new HostConfig());
>  
>          // Add host aliases
> -        if ((aliases != null) && !("".equals(aliases))) {
> +        if ((aliases != null) && !aliases.isEmpty()) {
>              StringTokenizer tok = new StringTokenizer(aliases, ", ");
>              while (tok.hasMoreTokens()) {
>                  host.addAlias(tok.nextToken());
> diff --git a/java/org/apache/catalina/realm/RealmBase.java 
> b/java/org/apache/catalina/realm/RealmBase.java
> index f429447..948ec3e 100644
> --- a/java/org/apache/catalina/realm/RealmBase.java
> +++ b/java/org/apache/catalina/realm/RealmBase.java
> @@ -1522,7 +1522,7 @@ public abstract class RealmBase extends 
> LifecycleMBeanBase implements Realm {
>  
>      private static X509UsernameRetriever createUsernameRetriever(String 
> className)
>          throws LifecycleException {
> -        if(null == className || "".equals(className.trim()))
> +        if(null == className || className.trim().isEmpty())
>              return new X509SubjectDnRetriever();
>  
>          try {
> diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
> b/java/org/apache/catalina/servlets/CGIServlet.java
> index e5df2d9..0dd5412 100644
> --- a/java/org/apache/catalina/servlets/CGIServlet.java
> +++ b/java/org/apache/catalina/servlets/CGIServlet.java
> @@ -1077,7 +1077,7 @@ public final class CGIServlet extends HttpServlet {
>               * SHOULD NOT be defined.
>               *
>               */
> -            if (!("".equals(sPathInfoCGI))) {
> +            if (!sPathInfoCGI.isEmpty()) {
>                  sPathTranslatedCGI = context.getRealPath(sPathInfoCGI);
>              }
>              if (sPathTranslatedCGI == null || "".equals(sPathTranslatedCGI)) 
> {
> @@ -1386,9 +1386,9 @@ public final class CGIServlet extends HttpServlet {
>           */
>          protected String blanksToString(String couldBeBlank,
>                                        String subForBlanks) {
> -            return (("".equals(couldBeBlank) || couldBeBlank == null)
> +            return (couldBeBlank == null || couldBeBlank.isEmpty())
>                      ? subForBlanks
> -                    : couldBeBlank);
> +                    : couldBeBlank;
>          }
>  
>  
> @@ -1689,7 +1689,7 @@ public final class CGIServlet extends HttpServlet {
>                      try {
>                          //set headers
>                          String line = null;
> -                        while (((line = cgiHeaderReader.readLine()) != null) 
> && !("".equals(line))) {
> +                        while (((line = cgiHeaderReader.readLine()) != null) 
> && !line.isEmpty()) {
>                              if (log.isTraceEnabled()) {
>                                  log.trace("addHeader(\"" + line + "\")");
>                              }
> diff --git a/java/org/apache/catalina/session/JDBCStore.java 
> b/java/org/apache/catalina/session/JDBCStore.java
> index f566190..bb57db0 100644
> --- a/java/org/apache/catalina/session/JDBCStore.java
> +++ b/java/org/apache/catalina/session/JDBCStore.java
> @@ -445,7 +445,7 @@ public class JDBCStore extends StoreBase {
>       * @param dataSourceName The JNDI name of the DataSource-factory
>       */
>      public void setDataSourceName(String dataSourceName) {
> -        if (dataSourceName == null || "".equals(dataSourceName.trim())) {
> +        if (dataSourceName == null || dataSourceName.trim().isEmpty()) {
>              manager.getContext().getLogger().warn(
>                      sm.getString(getStoreName() + ".missingDataSourceName"));
>              return;
> diff --git a/java/org/apache/catalina/storeconfig/StoreRegistry.java 
> b/java/org/apache/catalina/storeconfig/StoreRegistry.java
> index ccdc5e3..4ac91db 100644
> --- a/java/org/apache/catalina/storeconfig/StoreRegistry.java
> +++ b/java/org/apache/catalina/storeconfig/StoreRegistry.java
> @@ -182,7 +182,7 @@ public class StoreRegistry {
>       */
>      public void registerDescription(StoreDescription desc) {
>          String key = desc.getId();
> -        if (key == null || "".equals(key)) {
> +        if (key == null || key.isEmpty()) {
>              key = desc.getTagClass();
>          }
>          descriptors.put(key, desc);
> diff --git a/java/org/apache/catalina/util/ContextName.java 
> b/java/org/apache/catalina/util/ContextName.java
> index 877197d..ce41224 100644
> --- a/java/org/apache/catalina/util/ContextName.java
> +++ b/java/org/apache/catalina/util/ContextName.java
> @@ -25,7 +25,7 @@ import java.util.Locale;
>  public final class ContextName {
>      public static final String ROOT_NAME = "ROOT";
>      private static final String VERSION_MARKER = "##";
> -    private static final String FWD_SLASH_REPLACEMENT = "#";
> +    private static final char FWD_SLASH_REPLACEMENT = '#';
>  
>      private final String baseName;
>      private final String path;
> @@ -54,10 +54,10 @@ public final class ContextName {
>          }
>  
>          // Replace any remaining /
> -        tmp1 = tmp1.replaceAll("/", FWD_SLASH_REPLACEMENT);
> +        tmp1 = tmp1.replace('/', FWD_SLASH_REPLACEMENT);
>  
>          // Insert the ROOT name if required
> -        if (tmp1.startsWith(VERSION_MARKER) || "".equals(tmp1)) {
> +        if (tmp1.startsWith(VERSION_MARKER) || tmp1.isEmpty()) {
>              tmp1 = ROOT_NAME + tmp1;
>          }
>  
> @@ -84,7 +84,7 @@ public final class ContextName {
>          if (ROOT_NAME.equals(tmp2)) {
>              path = "";
>          } else {
> -            path = "/" + tmp2.replaceAll(FWD_SLASH_REPLACEMENT, "/");
> +            path = "/" + tmp2.replace(FWD_SLASH_REPLACEMENT, '/');
>          }
>  
>          if (versionIndex > -1) {
> @@ -116,7 +116,7 @@ public final class ContextName {
>          }
>  
>          // Name is path + version
> -        if ("".equals(this.version)) {
> +        if (this.version.isEmpty()) {
>              name = this.path;
>          } else {
>              name = this.path + VERSION_MARKER + this.version;
> @@ -124,13 +124,13 @@ public final class ContextName {
>  
>          // Base name is converted path + version
>          StringBuilder tmp = new StringBuilder();
> -        if ("".equals(this.path)) {
> +        if (this.path.isEmpty()) {
>              tmp.append(ROOT_NAME);
>          } else {
> -            tmp.append(this.path.substring(1).replaceAll("/",
> +            tmp.append(this.path.substring(1).replace('/',
>                      FWD_SLASH_REPLACEMENT));
>          }
> -        if (this.version.length() > 0) {
> +        if (!this.version.isEmpty()) {
>              tmp.append(VERSION_MARKER);
>              tmp.append(this.version);
>          }
> @@ -161,7 +161,7 @@ public final class ContextName {
>              tmp.append(path);
>          }
>  
> -        if (!"".equals(version)) {
> +        if (!version.isEmpty()) {
>              tmp.append(VERSION_MARKER);
>              tmp.append(version);
>          }
> diff --git a/java/org/apache/el/MethodExpressionImpl.java 
> b/java/org/apache/el/MethodExpressionImpl.java
> index ff5f1d9..eb9b764 100644
> --- a/java/org/apache/el/MethodExpressionImpl.java
> +++ b/java/org/apache/el/MethodExpressionImpl.java
> @@ -279,7 +279,7 @@ public final class MethodExpressionImpl extends 
> MethodExpression implements
>              ClassNotFoundException {
>          this.expr = in.readUTF();
>          String type = in.readUTF();
> -        if (!"".equals(type)) {
> +        if (!type.isEmpty()) {
>              this.expectedType = ReflectionUtil.forName(type);
>          }
>          this.paramTypes = ReflectionUtil.toTypeArray(((String[]) in
> diff --git a/java/org/apache/el/MethodExpressionLiteral.java 
> b/java/org/apache/el/MethodExpressionLiteral.java
> index ada7ea4..367d3d7 100644
> --- a/java/org/apache/el/MethodExpressionLiteral.java
> +++ b/java/org/apache/el/MethodExpressionLiteral.java
> @@ -95,7 +95,7 @@ public class MethodExpressionLiteral extends 
> MethodExpression implements Externa
>      public void readExternal(ObjectInput in) throws IOException, 
> ClassNotFoundException {
>          this.expr = in.readUTF();
>          String type = in.readUTF();
> -        if (!"".equals(type)) {
> +        if (!type.isEmpty()) {
>              this.expectedType = ReflectionUtil.forName(type);
>          }
>          this.paramTypes = ReflectionUtil.toTypeArray(((String[]) in
> diff --git a/java/org/apache/el/ValueExpressionImpl.java 
> b/java/org/apache/el/ValueExpressionImpl.java
> index f1a7a6a..91b3e1d 100644
> --- a/java/org/apache/el/ValueExpressionImpl.java
> +++ b/java/org/apache/el/ValueExpressionImpl.java
> @@ -240,7 +240,7 @@ public final class ValueExpressionImpl extends 
> ValueExpression implements
>              ClassNotFoundException {
>          this.expr = in.readUTF();
>          String type = in.readUTF();
> -        if (!"".equals(type)) {
> +        if (!type.isEmpty()) {
>              this.expectedType = ReflectionUtil.forName(type);
>          }
>          this.fnMapper = (FunctionMapper) in.readObject();
> diff --git a/java/org/apache/el/ValueExpressionLiteral.java 
> b/java/org/apache/el/ValueExpressionLiteral.java
> index 8ff72d0..ca87e15 100644
> --- a/java/org/apache/el/ValueExpressionLiteral.java
> +++ b/java/org/apache/el/ValueExpressionLiteral.java
> @@ -129,7 +129,7 @@ public final class ValueExpressionLiteral extends 
> ValueExpression implements
>              ClassNotFoundException {
>          this.value = in.readObject();
>          String type = in.readUTF();
> -        if (!"".equals(type)) {
> +        if (!type.isEmpty()) {
>              this.expectedType = ReflectionUtil.forName(type);
>          }
>      }
> diff --git a/java/org/apache/el/lang/ELSupport.java 
> b/java/org/apache/el/lang/ELSupport.java
> index 6031d1d..f251db8 100644
> --- a/java/org/apache/el/lang/ELSupport.java
> +++ b/java/org/apache/el/lang/ELSupport.java
> @@ -540,19 +540,20 @@ public class ELSupport {
>          if (obj == null)
>              return null;
>          if (obj instanceof String) {
> +            String str = (String) obj;
>              PropertyEditor editor = PropertyEditorManager.findEditor(type);
>              if (editor == null) {
> -                if ("".equals(obj)) {
> +                if (str.isEmpty()) {
>                      return null;
>                  }
>                  throw new ELException(MessageFactory.get("error.convert", 
> obj,
>                          obj.getClass(), type));
>              } else {
>                  try {
> -                    editor.setAsText((String) obj);
> +                    editor.setAsText(str);
>                      return editor.getValue();
>                  } catch (RuntimeException e) {
> -                    if ("".equals(obj)) {
> +                    if (str.isEmpty()) {
>                          return null;
>                      }
>                      throw new ELException(MessageFactory.get("error.convert",
> diff --git a/java/org/apache/el/lang/FunctionMapperImpl.java 
> b/java/org/apache/el/lang/FunctionMapperImpl.java
> index 81f296e..2887e11 100644
> --- a/java/org/apache/el/lang/FunctionMapperImpl.java
> +++ b/java/org/apache/el/lang/FunctionMapperImpl.java
> @@ -146,7 +146,7 @@ public class FunctionMapperImpl extends FunctionMapper 
> implements
>                  ClassNotFoundException {
>  
>              this.prefix = in.readUTF();
> -            if ("".equals(this.prefix)) this.prefix = null;
> +            if (this.prefix.isEmpty()) this.prefix = null;
>              this.localName = in.readUTF();
>              this.owner = in.readUTF();
>              this.name = in.readUTF();
> diff --git a/java/org/apache/el/util/ReflectionUtil.java 
> b/java/org/apache/el/util/ReflectionUtil.java
> index 401adb4..2bc4efd 100644
> --- a/java/org/apache/el/util/ReflectionUtil.java
> +++ b/java/org/apache/el/util/ReflectionUtil.java
> @@ -52,7 +52,7 @@ public class ReflectionUtil {
>      }
>  
>      public static Class<?> forName(String name) throws 
> ClassNotFoundException {
> -        if (null == name || "".equals(name)) {
> +        if (null == name || name.isEmpty()) {
>              return null;
>          }
>          Class<?> c = forNamePrimitive(name);
> diff --git a/java/org/apache/jasper/JspC.java 
> b/java/org/apache/jasper/JspC.java
> index f5fce3f..ff28ed1 100644
> --- a/java/org/apache/jasper/JspC.java
> +++ b/java/org/apache/jasper/JspC.java
> @@ -1147,7 +1147,7 @@ public class JspC extends Task implements Options {
>          String packageName = clctxt.getServletPackageName();
>  
>          String thisServletName;
> -        if  ("".equals(packageName)) {
> +        if  (packageName.isEmpty()) {
>              thisServletName = className;
>          } else {
>              thisServletName = packageName + '.' + className;
> diff --git a/java/org/apache/jasper/compiler/Generator.java 
> b/java/org/apache/jasper/compiler/Generator.java
> index 3feb48d..ad8b29e 100644
> --- a/java/org/apache/jasper/compiler/Generator.java
> +++ b/java/org/apache/jasper/compiler/Generator.java
> @@ -546,7 +546,7 @@ class Generator {
>       * preamble generation)
>       */
>      private void genPreamblePackage(String packageName) {
> -        if (!"".equals(packageName) && packageName != null) {
> +        if (packageName != null && !packageName.isEmpty()) {
>              out.printil("package " + packageName + ";");
>              out.println();
>          }
> diff --git a/java/org/apache/jasper/compiler/Validator.java 
> b/java/org/apache/jasper/compiler/Validator.java
> index 289dc94..c5fbd15 100644
> --- a/java/org/apache/jasper/compiler/Validator.java
> +++ b/java/org/apache/jasper/compiler/Validator.java
> @@ -1681,7 +1681,7 @@ class Validator {
>                      lastArg = true;
>                  }
>                  String arg = signature.substring(start, p).trim();
> -                if (!"".equals(arg)) {
> +                if (!arg.isEmpty()) {
>                      params.add(arg);
>                  }
>                  if (lastArg) {
> diff --git a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java 
> b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
> index 66d82f9..4779891 100644
> --- a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
> +++ b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
> @@ -85,7 +85,7 @@ public class SetPropertiesRule extends Rule {
>  
>          for (int i = 0; i < attributes.getLength(); i++) {
>              String name = attributes.getLocalName(i);
> -            if ("".equals(name)) {
> +            if (name.isEmpty()) {
>                  name = attributes.getQName(i);
>              }
>              String value = attributes.getValue(i);
> diff --git a/java/org/apache/tomcat/util/net/SSLUtilBase.java 
> b/java/org/apache/tomcat/util/net/SSLUtilBase.java
> index 09e3aa7..56453f3 100644
> --- a/java/org/apache/tomcat/util/net/SSLUtilBase.java
> +++ b/java/org/apache/tomcat/util/net/SSLUtilBase.java
> @@ -192,7 +192,7 @@ public abstract class SSLUtilBase implements SSLUtil {
>                  // Some key store types (e.g. hardware) expect the 
> InputStream
>                  // to be null
>                  if(!("PKCS11".equalsIgnoreCase(type) ||
> -                        "".equalsIgnoreCase(path)) ||
> +                        path.isEmpty()) ||
>                          "NONE".equalsIgnoreCase(path)) {
>                      istream = 
> ConfigFileLoader.getSource().getResource(path).getInputStream();
>                  }
> diff --git a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 
> b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
> index c2c5308..28d0543 100644
> --- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
> +++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
> @@ -734,7 +734,8 @@ public class WsWebSocketContainer implements 
> WebSocketContainer, BackgroundProce
>  
>          // Request line
>          result.put(GET_BYTES);
> -        if (null == uri.getPath() || "".equals(uri.getPath())) {
> +        final String path = uri.getPath();
> +        if (null == path || path.isEmpty()) {
>              result.put(ROOT_URI_BYTES);
>          } else {
>              
> result.put(uri.getRawPath().getBytes(StandardCharsets.ISO_8859_1));
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to