inefficient indexof when String has one length

David Holmes david.holmes at oracle.com
Sun Apr 27 12:04:58 UTC 2014


There is also a slight reduction in memory pressure due to not creating 
a bunch of one character string literals.

David

On 27/04/2014 3:13 AM, Claes Redestad wrote:
> Hi Otávio,
>
>   while I personally like using chars instead of Strings where
> applicable, I would assume these constant replacements are all cases
> where the JIT will be quick to inline and eliminate the overhead. So the
> benefit, if any, would be in interpreted code. Testing these assumptions
> with a simple but representative JMH[1] microbenchmark[2]:
>
> Benchmark                             Mode   Samples Mean   Mean
> error    Units
> o.s.MyBenchmark.indexOfChar          thrpt        20 32290.764 359.347
> ops/ms
> o.s.MyBenchmark.indexOfString        thrpt        20 32353.865 398.929
> ops/ms
> o.s.MyBenchmark.lastIndexOfChar      thrpt        20 32444.428 462.630
> ops/ms
> o.s.MyBenchmark.lastIndexOfString    thrpt        20 32001.738 388.791
> ops/ms
>
>   So no real difference, as suspected. Running with -Xint:
>
> Benchmark                             Mode Samples         Mean   Mean
> error    Units
> o.s.MyBenchmark.indexOfChar          thrpt        20 3170.130 108.933
> ops/ms
> o.s.MyBenchmark.indexOfString        thrpt        20 3119.518 44.703
> ops/ms
> o.s.MyBenchmark.lastIndexOfChar      thrpt        20 3281.374 25.589
> ops/ms
> o.s.MyBenchmark.lastIndexOfString    thrpt        20 3154.710 45.224
> ops/ms
>
>   Not much - if anything - here either. I think more evidence that this
> would have some actual benefit is warranted.
>
> /Claes
>
> [1] http://openjdk.java.net/projects/code-tools/jmh/
> [2] package org.sample;
>
> import org.openjdk.jmh.annotations.*;
>
> import java.util.Random;
>
> @State(Scope.Thread)
> public class MyBenchmark {
>
>      /*
>       * Generate a lot of randomly generated strings of various sizes
>       */
>      static int NUM = 100000;
>      static int MAX_SIZE = 1000;
>      static String[] STRINGS = new String[NUM];
>
>      static {
>          Random r = new Random();
>          for (int i = 0; i < NUM; i++) {
>              StringBuilder sb = new StringBuilder(r.nextInt(MAX_SIZE) + 1);
>              for (int j = 0; j < sb.capacity(); j++) {
>                  sb.append((char)(r.nextInt(70) + '0'));
>              }
>              STRINGS[i] = sb.toString();
>          }
>      }
>
>      private int i = 0;
>
>      @GenerateMicroBenchmark
>      public int indexOfString() {
>          if (i >= NUM) { i = 0; }
>          return STRINGS[i++].indexOf("6");
>      }
>
>      @GenerateMicroBenchmark
>      public int lastIndexOfString() {
>          if (i >= NUM) { i = 0; }
>          return STRINGS[i++].indexOf("6");
>      }
>
>      @GenerateMicroBenchmark
>      public int indexOfChar() {
>          if (i >= NUM) { i = 0; }
>          return STRINGS[i++].indexOf('6');
>      }
>
>      @GenerateMicroBenchmark
>      public int lastIndexOfChar() {
>          if (i >= NUM) { i = 0; }
>          return STRINGS[i++].indexOf('6');
>      }
> }
>
> On 2014-04-26 12:56, Otávio Gonçalves de Santana wrote:
>> When a String has length just one, could be replaced by equivalent
>> character literals, gaining some performance enhancement.
>>
>> I found 107 changes.
>>
>>
>> diff -r e323c74edabd
>> src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java
>> --- a/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java Wed Apr
>> 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java Sat Apr
>> 26 07:31:04 2014 -0300
>> @@ -547,7 +547,7 @@
>>                               i =
>> strLowerCase.indexOf("<stringvalue>", i);
>>                               if (i > 0) {
>>                                   i += "<stringvalue>".length();
>> -                                int i2 = str.indexOf("<", i);
>> +                                int i2 = str.indexOf('<', i);
>>                                   return str.substring(i, i2);
>>                               }
>>                           }
>> diff -r e323c74edabd
>> src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
>> --- a/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -512,7 +512,7 @@
>>       }
>>       static String qualifiedStringValue(String s1, String s234) {
>>           // Qualification by dot must decompose uniquely.  Second string
>> might already be qualified.
>> -        assert(s1.indexOf(".") < 0);
>> +        assert(s1.indexOf('.') < 0);
>>           return s1+"."+s234;
>>       }
>>
>> diff -r e323c74edabd
>> src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java
>> --- a/src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -102,7 +102,7 @@
>>           }
>>           location = url.substring(addrStart, addrEnd);
>>
>> -        int keyStart = location.indexOf("/");
>> +        int keyStart = location.indexOf('/');
>>           if (keyStart >= 0) {
>>               // Has key string
>>               if (keyStart == (location.length() -1)) {
>> diff -r e323c74edabd
>> src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
>> --- a/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -336,7 +336,7 @@
>>           String url = "rmi://";
>>
>>           // Enclose IPv6 literal address in '[' and ']'
>> -        url = (host.indexOf(":") > -1) ? url + "[" + host + "]" :
>> +        url = (host.indexOf(':') > -1) ? url + "[" + host + "]" :
>>                                            url + host;
>>           if (port > 0) {
>>               url += ":" + Integer.toString(port);
>> diff -r e323c74edabd
>> src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java
>> ---
>> a/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -149,7 +149,7 @@
>>         * foo:rest/of/name                        foo:
>>         */
>>       protected String getURLPrefix(String url) throws NamingException {
>> -        int start = url.indexOf(":");
>> +        int start = url.indexOf(':');
>>
>>           if (start < 0) {
>>               throw new OperationNotSupportedException("Invalid URL: " +
>> url);
>> @@ -160,7 +160,7 @@
>>               start += 2;  // skip double slash
>>
>>               // find last slash
>> -            int posn = url.indexOf("/", start);
>> +            int posn = url.indexOf('/', start);
>>               if (posn >= 0) {
>>                   start = posn;
>>               } else {
>> diff -r e323c74edabd
>> src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java
>> --- a/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java Wed
>> Apr
>> 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java Sat
>> Apr
>> 26 07:31:04 2014 -0300
>> @@ -303,7 +303,7 @@
>>
>>               offset = pname.length() - 1;
>>
>> -            while ((last = pname.lastIndexOf(".", offset)) != -1) {
>> +            while ((last = pname.lastIndexOf('.', offset)) != -1) {
>>
>>                   pname = pname.substring(0, last+1) + "*";
>>                   x = permissions.get(pname);
>> @@ -318,7 +318,7 @@
>>               pname = p.getName();
>>               offset = pname.length() - 1;
>>
>> -            while ((last = pname.lastIndexOf("=", offset)) != -1) {
>> +            while ((last = pname.lastIndexOf('=', offset)) != -1) {
>>
>>                   pname = pname.substring(0, last+1) + "*";
>>                   x = permissions.get(pname);
>> diff -r e323c74edabd
>> src/share/classes/com/sun/rowset/CachedRowSetImpl.java
>> --- a/src/share/classes/com/sun/rowset/CachedRowSetImpl.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/rowset/CachedRowSetImpl.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -6831,7 +6831,7 @@
>>               // table name else isolate table name.
>>
>>               indexFrom = command.toLowerCase().indexOf("from");
>> -            indexComma = command.indexOf(",", indexFrom);
>> +            indexComma = command.indexOf(',', indexFrom);
>>
>>               if(indexComma == -1) {
>>                   // implies only one table
>> diff -r e323c74edabd src/share/classes/com/sun/rowset/JoinRowSetImpl.java
>> --- a/src/share/classes/com/sun/rowset/JoinRowSetImpl.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/rowset/JoinRowSetImpl.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -910,7 +910,7 @@
>>
>>           // now remove the last ","
>>           strWhereClause = strWhereClause.substring
>> -             (0, strWhereClause.lastIndexOf(","));
>> +             (0, strWhereClause.lastIndexOf(','));
>>
>>           // Add from clause
>>           strWhereClause = strWhereClause.concat(" from ");
>> @@ -920,7 +920,7 @@
>>
>>           //Remove the last ","
>>           strWhereClause = strWhereClause.substring
>> -             (0, strWhereClause.lastIndexOf(","));
>> +             (0, strWhereClause.lastIndexOf(','));
>>
>>           // Add the where clause
>>           strWhereClause = strWhereClause.concat(" where ");
>> diff -r e323c74edabd
>> src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java
>> ---
>> a/src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -240,7 +240,7 @@
>>               // Remove the string after "@xxxx"
>>               // before writing it to the xml file.
>>               String strProviderInstance =
>> (caller.getSyncProvider()).toString();
>> -            String strProvider = strProviderInstance.substring(0,
>> (caller.getSyncProvider()).toString().indexOf("@"));
>> +            String strProvider = strProviderInstance.substring(0,
>> (caller.getSyncProvider()).toString().indexOf('@'));
>>
>>               propString("sync-provider-name", strProvider);
>>               propString("sync-provider-vendor", "Oracle Corporation");
>> diff -r e323c74edabd
>> src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java
>> ---
>> a/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -1147,7 +1147,7 @@
>>               if (nullValue) {
>>                   rs.setSyncProvider(null);
>>               } else {
>> -                String str = s.substring(0,s.indexOf("@")+1);
>> +                String str = s.substring(0,s.indexOf('@')+1);
>>                   rs.setSyncProvider(str);
>>               }
>>               break;
>> diff -r e323c74edabd
>> src/share/classes/com/sun/rowset/internal/XmlResolver.java
>> --- a/src/share/classes/com/sun/rowset/internal/XmlResolver.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/rowset/internal/XmlResolver.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -39,7 +39,7 @@
>>   public class XmlResolver implements EntityResolver {
>>
>>           public InputSource resolveEntity(String publicId, String
>> systemId)
>> {
>> -           String schemaName =
>> systemId.substring(systemId.lastIndexOf("/"));
>> +           String schemaName =
>> systemId.substring(systemId.lastIndexOf('/'));
>>
>>              if(systemId.startsWith("http://java.sun.com/xml/ns/jdbc")) {
>>                  return new
>> InputSource(this.getClass().getResourceAsStream(schemaName));
>> diff -r e323c74edabd
>> src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
>> ---
>> a/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -694,7 +694,7 @@
>>               throw new LoginException("Error: no CallbackHandler
>> available
>> " +
>>                   "to garner authentication information from the user");
>>
>> -        String protocol = userProvider.substring(0,
>> userProvider.indexOf(":"));
>> +        String protocol = userProvider.substring(0,
>> userProvider.indexOf(':'));
>>
>>           Callback[] callbacks = new Callback[2];
>>           callbacks[0] = new NameCallback(protocol + " "
>> diff -r e323c74edabd
>> src/share/classes/com/sun/security/auth/module/LdapLoginModule.java
>> ---
>> a/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -400,7 +400,7 @@
>>
>>           // Add any JNDI properties to the environment
>>           for (String key : options.keySet()) {
>> -            if (key.indexOf(".") > -1) {
>> +            if (key.indexOf('.') > -1) {
>>                   ldapEnvironment.put(key, options.get(key));
>>               }
>>           }
>> diff -r e323c74edabd
>> src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
>> ---
>> a/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -857,7 +857,7 @@
>>                   bpSpec = runtime.createClassLineBreakpoint(classId,
>> lineNumber);
>>               } else {
>>                   // Try stripping method from class.method token.
>> -                int idot = token.lastIndexOf(".");
>> +                int idot = token.lastIndexOf('.');
>>                   if ( (idot <= 0) ||        /* No dot or dot in first
>> char
>> */
>>                        (idot >= token.length() - 1) ) { /* dot in last
>> char
>> */
>>                       return null;
>> diff -r e323c74edabd
>> src/share/classes/com/sun/tools/example/debug/tty/Commands.java
>> --- a/src/share/classes/com/sun/tools/example/debug/tty/Commands.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/com/sun/tools/example/debug/tty/Commands.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -1079,7 +1079,7 @@
>>                   }
>>               } else {
>>                   // Try stripping method from class.method token.
>> -                int idot = token.lastIndexOf(".");
>> +                int idot = token.lastIndexOf('.');
>>                   if ( (idot <= 0) ||                     /* No dot or
>> dot
>> in first char */
>>                        (idot >= token.length() - 1) ) { /* dot in last
>> char
>> */
>>                       printBreakpointCommandUsage(atForm, inForm);
>> diff -r e323c74edabd
>> src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java
>> ---
>> a/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -67,7 +67,7 @@
>>                   continue;
>>               }
>>               String name = clazz.getName();
>> -            int pos = name.lastIndexOf(".");
>> +            int pos = name.lastIndexOf('.');
>>               String pkg;
>>               if (name.startsWith("[")) {         // Only in ancient heap
>> dumps
>>                   pkg = "<Arrays>";
>> diff -r e323c74edabd src/share/classes/java/lang/Class.java
>> --- a/src/share/classes/java/lang/Class.java Wed Apr 23 11:35:40 2014
>> -0700
>> +++ b/src/share/classes/java/lang/Class.java Sat Apr 26 07:31:04 2014
>> -0300
>> @@ -1296,7 +1296,7 @@
>>           String simpleName = getSimpleBinaryName();
>>           if (simpleName == null) { // top level class
>>               simpleName = getName();
>> -            return
>> simpleName.substring(simpleName.lastIndexOf(".")+1); //
>> strip the package name
>> +            return
>> simpleName.substring(simpleName.lastIndexOf('.')+1); //
>> strip the package name
>>           }
>>           // According to JLS3 "Binary Compatibility" (13.1) the binary
>>           // name of non-package classes (not top level) is the binary
>> diff -r e323c74edabd src/share/classes/java/lang/ClassLoader.java
>> --- a/src/share/classes/java/lang/ClassLoader.java Wed Apr 23 11:35:40
>> 2014
>> -0700
>> +++ b/src/share/classes/java/lang/ClassLoader.java Sat Apr 26 07:31:04
>> 2014
>> -0300
>> @@ -2136,7 +2136,7 @@
>>                   return result.booleanValue();
>>
>>               // Check for most specific package entry
>> -            int dotIndex = className.lastIndexOf(".");
>> +            int dotIndex = className.lastIndexOf('.');
>>               if (dotIndex < 0) { // default package
>>                   result = packageAssertionStatus.get(null);
>>                   if (result != null)
>> @@ -2147,7 +2147,7 @@
>>                   result = packageAssertionStatus.get(className);
>>                   if (result != null)
>>                       return result.booleanValue();
>> -                dotIndex = className.lastIndexOf(".", dotIndex-1);
>> +                dotIndex = className.lastIndexOf('.', dotIndex-1);
>>               }
>>
>>               // Return the classloader default
>> diff -r e323c74edabd
>> src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
>> --- a/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -84,7 +84,7 @@
>>       private InvokerBytecodeGenerator(LambdaForm lambdaForm, int
>> localsMapSize,
>>                                        String className, String
>> invokerName,
>> MethodType invokerType) {
>>           if (invokerName.contains(".")) {
>> -            int p = invokerName.indexOf(".");
>> +            int p = invokerName.indexOf('.');
>>               className = invokerName.substring(0, p);
>>               invokerName = invokerName.substring(p+1);
>>           }
>> diff -r e323c74edabd src/share/classes/java/net/CookieManager.java
>> --- a/src/share/classes/java/net/CookieManager.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/net/CookieManager.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -294,7 +294,7 @@
>>                               // the path is the directory of the
>> page/doc
>>                               String path = uri.getPath();
>>                               if (!path.endsWith("/")) {
>> -                                int i = path.lastIndexOf("/");
>> +                                int i = path.lastIndexOf('/');
>>                                   if (i > 0) {
>>                                       path = path.substring(0, i + 1);
>>                                   } else {
>> @@ -364,7 +364,7 @@
>>
>>
>>       static private boolean isInPortList(String lst, int port) {
>> -        int i = lst.indexOf(",");
>> +        int i = lst.indexOf(',');
>>           int val = -1;
>>           while (i > 0) {
>>               try {
>> @@ -375,7 +375,7 @@
>>               } catch (NumberFormatException numberFormatException) {
>>               }
>>               lst = lst.substring(i+1);
>> -            i = lst.indexOf(",");
>> +            i = lst.indexOf(',');
>>           }
>>           if (!lst.isEmpty()) {
>>               try {
>> diff -r e323c74edabd src/share/classes/java/net/InetAddress.java
>> --- a/src/share/classes/java/net/InetAddress.java Wed Apr 23 11:35:40
>> 2014
>> -0700
>> +++ b/src/share/classes/java/net/InetAddress.java Sat Apr 26 07:31:04
>> 2014
>> -0300
>> @@ -1138,7 +1138,7 @@
>>                   // This is supposed to be an IPv6 literal
>>                   // Check if a numeric or string zone id is present
>>                   int pos;
>> -                if ((pos=host.indexOf ("%")) != -1) {
>> +                if ((pos=host.indexOf ('%')) != -1) {
>>                       numericZone = checkNumericZone (host);
>>                       if (numericZone == -1) { /* remainder of string
>> must
>> be an ifname */
>>                           ifname = host.substring (pos+1);
>> diff -r e323c74edabd src/share/classes/java/net/SocketPermission.java
>> --- a/src/share/classes/java/net/SocketPermission.java Wed Apr 23
>> 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/net/SocketPermission.java Sat Apr 26
>> 07:31:04
>> 2014 -0300
>> @@ -777,7 +777,7 @@
>>                   // Literal IPv6 address
>>                   host = getName().substring(1, getName().indexOf(']'));
>>               } else {
>> -                int i = getName().indexOf(":");
>> +                int i = getName().indexOf(':');
>>                   if (i == -1)
>>                       host = getName();
>>                   else {
>> diff -r e323c74edabd src/share/classes/java/net/SocksSocketImpl.java
>> --- a/src/share/classes/java/net/SocksSocketImpl.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/net/SocksSocketImpl.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -368,7 +368,7 @@
>>               String host = epoint.getHostString();
>>               // IPv6 litteral?
>>               if (epoint.getAddress() instanceof Inet6Address &&
>> -                (!host.startsWith("[")) && (host.indexOf(":") >= 0)) {
>> +                (!host.startsWith("[")) && (host.indexOf(':') >= 0)) {
>>                   host = "[" + host + "]";
>>               }
>>               try {
>> @@ -684,7 +684,7 @@
>>               String host = saddr.getHostString();
>>               // IPv6 litteral?
>>               if (saddr.getAddress() instanceof Inet6Address &&
>> -                (!host.startsWith("[")) && (host.indexOf(":") >= 0)) {
>> +                (!host.startsWith("[")) && (host.indexOf(':') >= 0)) {
>>                   host = "[" + host + "]";
>>               }
>>               try {
>> diff -r e323c74edabd src/share/classes/java/net/URI.java
>> --- a/src/share/classes/java/net/URI.java Wed Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/net/URI.java Sat Apr 26 07:31:04 2014 -0300
>> @@ -1851,9 +1851,9 @@
>>               sb.append("//");
>>               if (authority.startsWith("[")) {
>>                   // authority should (but may not) contain an
>> embedded IPv6
>> address
>> -                int end = authority.indexOf("]");
>> +                int end = authority.indexOf(']');
>>                   String doquote = authority, dontquote = "";
>> -                if (end != -1 && authority.indexOf(":") != -1) {
>> +                if (end != -1 && authority.indexOf(':') != -1) {
>>                       // the authority contains an IPv6 address
>>                       if (end == authority.length()) {
>>                           dontquote = authority;
>> @@ -1889,8 +1889,8 @@
>>                * because we must not quote a literal IPv6 address
>>                */
>>               if (opaquePart.startsWith("//[")) {
>> -                int end =  opaquePart.indexOf("]");
>> -                if (end != -1 && opaquePart.indexOf(":")!=-1) {
>> +                int end =  opaquePart.indexOf(']');
>> +                if (end != -1 && opaquePart.indexOf(':')!=-1) {
>>                       String doquote, dontquote;
>>                       if (end == opaquePart.length()) {
>>                           dontquote = opaquePart;
>> diff -r e323c74edabd src/share/classes/java/security/BasicPermission.java
>> --- a/src/share/classes/java/security/BasicPermission.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/security/BasicPermission.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -430,7 +430,7 @@
>>
>>           offset = path.length()-1;
>>
>> -        while ((last = path.lastIndexOf(".", offset)) != -1) {
>> +        while ((last = path.lastIndexOf('.', offset)) != -1) {
>>
>>               path = path.substring(0, last+1) + "*";
>>               //System.out.println("check "+path);
>> diff -r e323c74edabd src/share/classes/java/security/Provider.java
>> --- a/src/share/classes/java/security/Provider.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/security/Provider.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -927,7 +927,7 @@
>>       }
>>
>>       private String[] getTypeAndAlgorithm(String key) {
>> -        int i = key.indexOf(".");
>> +        int i = key.indexOf('.');
>>           if (i < 1) {
>>               if (debug != null) {
>>                   debug.println("Ignoring invalid entry in provider "
>> diff -r e323c74edabd src/share/classes/java/security/Security.java
>> --- a/src/share/classes/java/security/Security.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/security/Security.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -1114,7 +1114,7 @@
>>                       // implementation of an algorithm. We are only
>> interested
>>                       // in entries which lead to the implementation
>>                       // classes.
>> -                    if (currentKey.indexOf(" ") < 0) {
>> +                    if (currentKey.indexOf(' ') < 0) {
>>                           result.add(currentKey.substring(
>>                                                   serviceName.length()
>> + 1));
>>                       }
>> diff -r e323c74edabd src/share/classes/java/util/PropertyPermission.java
>> --- a/src/share/classes/java/util/PropertyPermission.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/util/PropertyPermission.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -547,7 +547,7 @@
>>
>>           offset = name.length()-1;
>>
>> -        while ((last = name.lastIndexOf(".", offset)) != -1) {
>> +        while ((last = name.lastIndexOf('.', offset)) != -1) {
>>
>>               name = name.substring(0, last+1) + "*";
>>               //System.out.println("check "+name);
>> diff -r e323c74edabd src/share/classes/java/util/jar/JarVerifier.java
>> --- a/src/share/classes/java/util/jar/JarVerifier.java Wed Apr 23
>> 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/java/util/jar/JarVerifier.java Sat Apr 26
>> 07:31:04
>> 2014 -0300
>> @@ -278,7 +278,7 @@
>>
>>                   // now we are parsing a signature block file
>>
>> -                String key = uname.substring(0, uname.lastIndexOf("."));
>> +                String key = uname.substring(0, uname.lastIndexOf('.'));
>>
>>                   if (signerCache == null)
>>                       signerCache = new ArrayList<>();
>> diff -r e323c74edabd src/share/classes/java/util/logging/LogManager.java
>> --- a/src/share/classes/java/util/logging/LogManager.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/util/logging/LogManager.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -866,7 +866,7 @@
>>
>>               int ix = 1;
>>               for (;;) {
>> -                int ix2 = name.indexOf(".", ix);
>> +                int ix2 = name.indexOf('.', ix);
>>                   if (ix2 < 0) {
>>                       break;
>>                   }
>> @@ -889,7 +889,7 @@
>>               }
>>               LogNode node = root;
>>               while (name.length() > 0) {
>> -                int ix = name.indexOf(".");
>> +                int ix = name.indexOf('.');
>>                   String head;
>>                   if (ix > 0) {
>>                       head = name.substring(0, ix);
>> diff -r e323c74edabd
>> src/share/classes/java/util/logging/XMLFormatter.java
>> --- a/src/share/classes/java/util/logging/XMLFormatter.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/java/util/logging/XMLFormatter.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -174,7 +174,7 @@
>>           //  Check to see if the parameter was not a messagetext format
>>           //  or was not null or empty
>>           if ( parameters != null && parameters.length != 0
>> -                && record.getMessage().indexOf("{") == -1 ) {
>> +                && record.getMessage().indexOf('{') == -1 ) {
>>               for (int i = 0; i < parameters.length; i++) {
>>                   sb.append("  <param>");
>>                   try {
>> diff -r e323c74edabd
>> src/share/classes/javax/management/MBeanPermission.java
>> --- a/src/share/classes/javax/management/MBeanPermission.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/javax/management/MBeanPermission.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -290,7 +290,7 @@
>>
>>           // Parse ObjectName
>>
>> -        int openingBracket = name.indexOf("[");
>> +        int openingBracket = name.indexOf('[');
>>           if (openingBracket == -1) {
>>               // If "[on]" missing then ObjectName("*:*")
>>               //
>> @@ -329,7 +329,7 @@
>>
>>           // Parse member
>>
>> -        int poundSign = name.indexOf("#");
>> +        int poundSign = name.indexOf('#');
>>
>>           if (poundSign == -1)
>>               setMember("*");
>> diff -r e323c74edabd
>> src/share/classes/javax/management/modelmbean/DescriptorSupport.java
>> ---
>> a/src/share/classes/javax/management/modelmbean/DescriptorSupport.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/javax/management/modelmbean/DescriptorSupport.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -329,7 +329,7 @@
>>                   inFld = false;
>>               } else if (inFld && inDesc) {
>>                   // want kw=value, eg, name="myname" value="myvalue"
>> -                int eq_separator = tok.indexOf("=");
>> +                int eq_separator = tok.indexOf('=');
>>                   if (eq_separator > 0) {
>>                       String kwPart = tok.substring(0,eq_separator);
>>                       String valPart = tok.substring(eq_separator+1);
>> @@ -458,7 +458,7 @@
>>               if ((fields[i] == null) || (fields[i].equals(""))) {
>>                   continue;
>>               }
>> -            int eq_separator = fields[i].indexOf("=");
>> +            int eq_separator = fields[i].indexOf('=');
>>               if (eq_separator < 0) {
>>                   // illegal if no = or is first character
>>                   if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
>> diff -r e323c74edabd
>> src/share/classes/javax/management/modelmbean/RequiredModelMBean.java
>> ---
>> a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Wed
>>
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Sat
>>
>> Apr 26 07:31:04 2014 -0300
>> @@ -934,7 +934,7 @@
>>           String opMethodName;
>>
>>           // Parse for class name and method
>> -        int opSplitter = opName.lastIndexOf(".");
>> +        int opSplitter = opName.lastIndexOf('.');
>>           if (opSplitter > 0) {
>>               opClassName = opName.substring(0,opSplitter);
>>               opMethodName = opName.substring(opSplitter+1);
>> @@ -943,7 +943,7 @@
>>
>>           /* Ignore anything after a left paren.  We keep this for
>>              compatibility but it isn't specified.  */
>> -        opSplitter = opMethodName.indexOf("(");
>> +        opSplitter = opMethodName.indexOf('(');
>>           if (opSplitter > 0)
>>               opMethodName = opMethodName.substring(0,opSplitter);
>>
>> diff -r e323c74edabd
>> src/share/classes/javax/security/auth/PrivateCredentialPermission.java
>> ---
>> a/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -495,7 +495,7 @@
>>
>>           // perform new initialization from the permission name
>>
>> -        if (getName().indexOf(" ") == -1 && getName().indexOf("\"")
>> == -1)
>> {
>> +        if (getName().indexOf(' ') == -1 && getName().indexOf('\"')
>> == -1)
>> {
>>
>>               // name only has a credential class specified
>>               credentialClass = getName();
>> diff -r e323c74edabd src/share/classes/javax/security/sasl/Sasl.java
>> --- a/src/share/classes/javax/security/sasl/Sasl.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/javax/security/sasl/Sasl.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -600,7 +600,7 @@
>>                       // implementation of an algorithm. We are only
>> interested
>>                       // in entries which lead to the implementation
>>                       // classes.
>> -                    if (currentKey.indexOf(" ") < 0) {
>> +                    if (currentKey.indexOf(' ') < 0) {
>>                           String className =
>> providers[i].getProperty(currentKey);
>>                           if (!classes.contains(className)) {
>>                               classes.add(className);
>> diff -r e323c74edabd src/share/classes/javax/swing/JEditorPane.java
>> --- a/src/share/classes/javax/swing/JEditorPane.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/javax/swing/JEditorPane.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -964,7 +964,7 @@
>>           // The type could have optional info is part of it,
>>           // for example some charset info.  We need to strip that
>>           // of and save it.
>> -        int parm = type.indexOf(";");
>> +        int parm = type.indexOf(';');
>>           if (parm > -1) {
>>               // Save the paramList.
>>               String paramList = type.substring(parm);
>> diff -r e323c74edabd
>> src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java
>> --- a/src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -653,7 +653,7 @@
>>
>>           // strip off the prefix, if there is one.
>>           String fullKey = key.toString();
>> -        String partialKey = fullKey.substring(fullKey.indexOf(".") + 1);
>> +        String partialKey = fullKey.substring(fullKey.indexOf('.') + 1);
>>
>>           Object obj = null;
>>           int xstate = getExtendedState(ctx, v);
>> diff -r e323c74edabd src/share/classes/sun/applet/AppletClassLoader.java
>> --- a/src/share/classes/sun/applet/AppletClassLoader.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/applet/AppletClassLoader.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -168,7 +168,7 @@
>>        */
>>       protected Class findClass(String name) throws
>> ClassNotFoundException {
>>
>> -        int index = name.indexOf(";");
>> +        int index = name.indexOf(';');
>>           String cookie = "";
>>           if(index != -1) {
>>                   cookie = name.substring(index, name.length());
>> @@ -608,7 +608,7 @@
>>
>>           // deal with URL rewriting
>>           String cookie = null;
>> -        int index = name.indexOf(";");
>> +        int index = name.indexOf(';');
>>           if(index != -1) {
>>                   cookie = name.substring(index, name.length());
>>                   name = name.substring(0, index);
>> diff -r e323c74edabd src/share/classes/sun/awt/FontConfiguration.java
>> --- a/src/share/classes/sun/awt/FontConfiguration.java Wed Apr 23
>> 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/sun/awt/FontConfiguration.java Sat Apr 26
>> 07:31:04
>> 2014 -0300
>> @@ -272,9 +272,9 @@
>>               if (configFile != null) {
>>                   return configFile;
>>               }
>> -            int decimalPointIndex = osVersion.indexOf(".");
>> +            int decimalPointIndex = osVersion.indexOf('.');
>>               if (decimalPointIndex != -1) {
>> -                osMajorVersion = osVersion.substring(0,
>> osVersion.indexOf("."));
>> +                osMajorVersion = osVersion.substring(0,
>> osVersion.indexOf('.'));
>>                   configFile = findImpl(baseName + "." + osName + "." +
>> osMajorVersion);
>>                   if (configFile != null) {
>>                       return configFile;
>> diff -r e323c74edabd src/share/classes/sun/font/Type1Font.java
>> --- a/src/share/classes/sun/font/Type1Font.java Wed Apr 23 11:35:40 2014
>> -0700
>> +++ b/src/share/classes/sun/font/Type1Font.java Sat Apr 26 07:31:04 2014
>> -0300
>> @@ -492,7 +492,7 @@
>>
>>           //Conversion: Expand abbreviations in style portion (everything
>> after '-'),
>>           //            replace '-' with space and insert missing spaces
>> -        pos = name.indexOf("-");
>> +        pos = name.indexOf('-');
>>           if (pos >= 0) {
>>               res =  expandName(name.substring(0, pos), false);
>>               res += " " + expandName(name.substring(pos+1), true);
>> @@ -513,8 +513,8 @@
>>           //Conversion: Truncate style portion (everything after '-')
>>           //            and insert missing spaces
>>
>> -        if (tmp.indexOf("-") > 0) {
>> -            tmp = tmp.substring(0, tmp.indexOf("-"));
>> +        if (tmp.indexOf('-') > 0) {
>> +            tmp = tmp.substring(0, tmp.indexOf('-'));
>>           }
>>
>>           return expandName(tmp, false);
>> diff -r e323c74edabd
>> src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java
>> --- a/src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -84,7 +84,7 @@
>>        * {@inheritDoc}
>>        */
>>       public String getBaseName() {
>> -        int baseIndex = name.lastIndexOf(".")+1;
>> +        int baseIndex = name.lastIndexOf('.') + 1;
>>           return name.substring(baseIndex);
>>       }
>>
>> diff -r e323c74edabd
>> src/share/classes/sun/jvmstat/monitor/HostIdentifier.java
>> --- a/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -138,8 +138,8 @@
>>                   String frag = u.getFragment();
>>                   URI u2 = null;
>>
>> -                int c1index = uriString.indexOf(":");
>> -                int c2index = uriString.lastIndexOf(":");
>> +                int c1index = uriString.indexOf(':');
>> +                int c2index = uriString.lastIndexOf(':');
>>                   if (c2index != c1index) {
>>                       /*
>>                        * this is the scheme:hostname:port case.
>> Attempt to
>> diff -r e323c74edabd
>> src/share/classes/sun/management/snmp/jvminstr/NotificationTargetImpl.java
>>
>> ---
>> a/src/share/classes/sun/management/snmp/jvminstr/NotificationTargetImpl.java
>>
>> Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/sun/management/snmp/jvminstr/NotificationTargetImpl.java
>>
>> Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -70,8 +70,8 @@
>>
>>           String addrStr;
>>           if (target.startsWith("[")) {
>> -            final int index = target.indexOf("]");
>> -            final int index2 = target.lastIndexOf(":");
>> +            final int index = target.indexOf(']');
>> +            final int index2 = target.lastIndexOf(':');
>>               if(index == -1)
>>                   throw new IllegalArgumentException("Host starts with
>> [ but
>> " +
>>                                                      "does not end
>> with ]");
>> @@ -85,8 +85,8 @@
>>               if (addrStr.startsWith("["))
>>                   throw new IllegalArgumentException("More than one
>> [[...]]");
>>           } else {
>> -            final int index = target.indexOf(":");
>> -            final int index2 = target.lastIndexOf(":");
>> +            final int index = target.indexOf(':');
>> +            final int index2 = target.lastIndexOf(':');
>>               if(index == -1) throw new
>>                   IllegalArgumentException("Missing port separator
>> \":\"");
>>               addrStr = target.substring(0, index);
>> @@ -98,7 +98,7 @@
>>           address = InetAddress.getByName(addrStr);
>>
>>           //THE CHECK SHOULD BE STRONGER!!!
>> -        final int index = target.lastIndexOf(":");
>> +        final int index = target.lastIndexOf(':');
>>
>>           community = target.substring(index + 1, target.length());
>>
>> diff -r e323c74edabd src/share/classes/sun/misc/ExtensionInfo.java
>> --- a/src/share/classes/sun/misc/ExtensionInfo.java Wed Apr 23 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/sun/misc/ExtensionInfo.java Sat Apr 26 07:31:04
>> 2014 -0300
>> @@ -273,8 +273,8 @@
>>           else
>>           {
>>               // Look for index of "." in the string
>> -            int sIdx = source.indexOf(".");
>> -            int tIdx = target.indexOf(".");
>> +            int sIdx = source.indexOf('.');
>> +            int tIdx = target.indexOf('.');
>>
>>               if (sIdx == -1)
>>                   sIdx = source.length() - 1;
>> @@ -304,10 +304,10 @@
>>           String versionError = mf.format(args);
>>
>>           // Look for "-" for pre-release
>> -        int prIndex = token.indexOf("-");
>> +        int prIndex = token.indexOf('-');
>>
>>           // Look for "_" for patch release
>> -        int patchIndex = token.indexOf("_");
>> +        int patchIndex = token.indexOf('_');
>>
>>           if (prIndex == -1 && patchIndex == -1)
>>           {
>> diff -r e323c74edabd src/share/classes/sun/misc/JarIndex.java
>> --- a/src/share/classes/sun/misc/JarIndex.java Wed Apr 23 11:35:40 2014
>> -0700
>> +++ b/src/share/classes/sun/misc/JarIndex.java Sat Apr 26 07:31:04 2014
>> -0300
>> @@ -172,7 +172,7 @@
>>           if ((jarFiles = indexMap.get(fileName)) == null) {
>>               /* try the package name again */
>>               int pos;
>> -            if((pos = fileName.lastIndexOf("/")) != -1) {
>> +            if((pos = fileName.lastIndexOf('/')) != -1) {
>>                   jarFiles = indexMap.get(fileName.substring(0, pos));
>>               }
>>           }
>> @@ -195,7 +195,7 @@
>>       public void add(String fileName, String jarName) {
>>           String packageName;
>>           int pos;
>> -        if((pos = fileName.lastIndexOf("/")) != -1) {
>> +        if((pos = fileName.lastIndexOf('/')) != -1) {
>>               packageName = fileName.substring(0, pos);
>>           } else {
>>               packageName = fileName;
>> diff -r e323c74edabd src/share/classes/sun/misc/URLClassPath.java
>> --- a/src/share/classes/sun/misc/URLClassPath.java Wed Apr 23 11:35:40
>> 2014
>> -0700
>> +++ b/src/share/classes/sun/misc/URLClassPath.java Sat Apr 26 07:31:04
>> 2014
>> -0300
>> @@ -793,7 +793,7 @@
>>           boolean validIndex(final String name) {
>>               String packageName = name;
>>               int pos;
>> -            if((pos = name.lastIndexOf("/")) != -1) {
>> +            if((pos = name.lastIndexOf('/')) != -1) {
>>                   packageName = name.substring(0, pos);
>>               }
>>
>> @@ -803,7 +803,7 @@
>>               while (enum_.hasMoreElements()) {
>>                   entry = enum_.nextElement();
>>                   entryName = entry.getName();
>> -                if((pos = entryName.lastIndexOf("/")) != -1)
>> +                if((pos = entryName.lastIndexOf('/')) != -1)
>>                       entryName = entryName.substring(0, pos);
>>                   if (entryName.equals(packageName)) {
>>                       return true;
>> @@ -900,7 +900,7 @@
>>                                */
>>                               JarIndex newIndex = newLoader.getIndex();
>>                               if(newIndex != null) {
>> -                                int pos = jarName.lastIndexOf("/");
>> +                                int pos = jarName.lastIndexOf('/');
>>                                   newIndex.merge(this.index, (pos == -1 ?
>>                                       null : jarName.substring(0, pos
>> + 1)));
>>                               }
>> diff -r e323c74edabd src/share/classes/sun/net/ftp/impl/FtpClient.java
>> --- a/src/share/classes/sun/net/ftp/impl/FtpClient.java Wed Apr 23
>> 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/sun/net/ftp/impl/FtpClient.java Sat Apr 26
>> 07:31:04
>> 2014 -0300
>> @@ -259,7 +259,7 @@
>>                       d = null;
>>                   }
>>                   if (d != null && time != null) {
>> -                    int c = time.indexOf(":");
>> +                    int c = time.indexOf(':');
>>                       now.setTime(d);
>>                       now.set(Calendar.HOUR,
>> Integer.parseInt(time.substring(0, c)));
>>                       now.set(Calendar.MINUTE,
>> Integer.parseInt(time.substring(c + 1)));
>> @@ -295,7 +295,7 @@
>>
>>           public FtpDirEntry parseLine(String line) {
>>               String name = null;
>> -            int i = line.lastIndexOf(";");
>> +            int i = line.lastIndexOf(';');
>>               if (i > 0) {
>>                   name = line.substring(i + 1).trim();
>>                   line = line.substring(0, i);
>> @@ -306,7 +306,7 @@
>>               FtpDirEntry file = new FtpDirEntry(name);
>>               while (!line.isEmpty()) {
>>                   String s;
>> -                i = line.indexOf(";");
>> +                i = line.indexOf(';');
>>                   if (i > 0) {
>>                       s = line.substring(0, i);
>>                       line = line.substring(i + 1);
>> @@ -314,7 +314,7 @@
>>                       s = line;
>>                       line = "";
>>                   }
>> -                i = s.indexOf("=");
>> +                i = s.indexOf('=');
>>                   if (i > 0) {
>>                       String fact = s.substring(0, i);
>>                       String value = s.substring(i + 1);
>> diff -r e323c74edabd
>> src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
>> ---
>> a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++
>> b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -325,7 +325,7 @@
>>               while (i.hasNext()) {
>>                   String parentDomain = i.next();
>>                   int start = 0;
>> -                while ((start = parentDomain.indexOf(".")) != -1
>> +                while ((start = parentDomain.indexOf('.')) != -1
>>                          && start < parentDomain.length() -1) {
>>                       try {
>>                           results = resolve(ctx,
>> host+"."+parentDomain, ids,
>> 0);
>> diff -r e323c74edabd src/share/classes/sun/net/util/IPAddressUtil.java
>> --- a/src/share/classes/sun/net/util/IPAddressUtil.java Wed Apr 23
>> 11:35:40
>> 2014 -0700
>> +++ b/src/share/classes/sun/net/util/IPAddressUtil.java Sat Apr 26
>> 07:31:04
>> 2014 -0300
>> @@ -149,7 +149,7 @@
>>           byte[] dst = new byte[INADDR16SZ];
>>
>>           int srcb_length = srcb.length;
>> -        int pc = src.indexOf ("%");
>> +        int pc = src.indexOf ('%');
>>           if (pc == srcb_length -1) {
>>               return null;
>>           }
>> diff -r e323c74edabd src/share/classes/sun/net/www/ParseUtil.java
>> --- a/src/share/classes/sun/net/www/ParseUtil.java Wed Apr 23 11:35:40
>> 2014
>> -0700
>> +++ b/src/share/classes/sun/net/www/ParseUtil.java Sat Apr 26 07:31:04
>> 2014
>> -0300
>> @@ -356,8 +356,8 @@
>>                * because we must not quote a literal IPv6 address
>>                */
>>               if (opaquePart.startsWith("//[")) {
>> -                int end =  opaquePart.indexOf("]");
>> -                if (end != -1 && opaquePart.indexOf(":")!=-1) {
>> +                int end =  opaquePart.indexOf(']');
>> +                if (end != -1 && opaquePart.indexOf(':')!=-1) {
>>                       String doquote, dontquote;
>>                       if (end == opaquePart.length()) {
>>                           dontquote = opaquePart;
>> @@ -408,8 +408,8 @@
>>           } else if (authority != null) {
>>               sb.append("//");
>>               if (authority.startsWith("[")) {
>> -                int end = authority.indexOf("]");
>> -                if (end != -1 && authority.indexOf(":")!=-1) {
>> +                int end = authority.indexOf(']');
>> +                if (end != -1 && authority.indexOf(':')!=-1) {
>>                       String doquote, dontquote;
>>                       if (end == authority.length()) {
>>                           dontquote = authority;
>> diff -r e323c74edabd src/share/classes/sun/reflect/misc/ReflectUtil.java
>> --- a/src/share/classes/sun/reflect/misc/ReflectUtil.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/reflect/misc/ReflectUtil.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -341,6 +341,6 @@
>>        * (not to be confused with a Java Language anonymous inner class).
>>        */
>>       public static boolean isVMAnonymousClass(Class<?> cls) {
>> -        return cls.getName().indexOf("/") > -1;
>> +        return cls.getName().indexOf('/') > -1;
>>       }
>>   }
>> diff -r e323c74edabd src/share/classes/sun/rmi/runtime/Log.java
>> --- a/src/share/classes/sun/rmi/runtime/Log.java Wed Apr 23 11:35:40 2014
>> -0700
>> +++ b/src/share/classes/sun/rmi/runtime/Log.java Sat Apr 26 07:31:04 2014
>> -0300
>> @@ -434,7 +434,7 @@
>>            * Mimic old log messages that only contain unqualified names.
>>            */
>>           private static String unqualifiedName(String name) {
>> -            int lastDot = name.lastIndexOf(".");
>> +            int lastDot = name.lastIndexOf('.');
>>               if (lastDot >= 0) {
>>                   name = name.substring(lastDot + 1);
>>               }
>> diff -r e323c74edabd
>> src/share/classes/sun/rmi/transport/proxy/CGIHandler.java
>> --- a/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -141,7 +141,7 @@
>>       {
>>           try {
>>               String command, param;
>> -            int delim = QueryString.indexOf("=");
>> +            int delim = QueryString.indexOf('=');
>>               if (delim == -1) {
>>                   command = QueryString;
>>                   param = "";
>> diff -r e323c74edabd
>> src/share/classes/sun/security/jgss/wrapper/Krb5Util.java
>> --- a/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -39,7 +39,7 @@
>>       static String getTGSName(GSSNameElement name)
>>           throws GSSException {
>>           String krbPrinc = name.getKrbName();
>> -        int atIndex = krbPrinc.indexOf("@");
>> +        int atIndex = krbPrinc.indexOf('@');
>>           String realm = krbPrinc.substring(atIndex + 1);
>>           StringBuffer buf = new StringBuffer("krbtgt/");
>>           buf.append(realm).append('@').append(realm);
>> diff -r e323c74edabd
>> src/share/classes/sun/security/provider/PolicyFile.java
>> --- a/src/share/classes/sun/security/provider/PolicyFile.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/provider/PolicyFile.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -1856,7 +1856,7 @@
>>               int colonIndex;
>>               String prefix = value;
>>               String suffix;
>> -            if ((colonIndex = value.indexOf(":")) != -1) {
>> +            if ((colonIndex = value.indexOf(':')) != -1) {
>>                   prefix = value.substring(0, colonIndex);
>>               }
>>
>> diff -r e323c74edabd
>> src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
>> --- a/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
>> Wed Apr
>> 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
>> Sat Apr
>> 26 07:31:04 2014 -0300
>> @@ -338,7 +338,7 @@
>>           }
>>           String sigType;
>>           if (keyType.contains("_")) {
>> -            int k = keyType.indexOf("_");
>> +            int k = keyType.indexOf('_');
>>               sigType = keyType.substring(k + 1);
>>               keyType = keyType.substring(0, k);
>>           } else {
>> diff -r e323c74edabd
>> src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
>> --- a/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -302,7 +302,7 @@
>>           final String sigKeyAlgorithm;
>>
>>           KeyType(String algorithm) {
>> -            int k = algorithm.indexOf("_");
>> +            int k = algorithm.indexOf('_');
>>               if (k == -1) {
>>                   keyAlgorithm = algorithm;
>>                   sigKeyAlgorithm = null;
>> diff -r e323c74edabd
>> src/share/classes/sun/security/util/HostnameChecker.java
>> --- a/src/share/classes/sun/security/util/HostnameChecker.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/util/HostnameChecker.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -300,8 +300,8 @@
>>           template = template.toLowerCase(Locale.ENGLISH);
>>
>>           // Retreive leftmost component
>> -        int templateIdx = template.indexOf(".");
>> -        int nameIdx = name.indexOf(".");
>> +        int templateIdx = template.indexOf('.');
>> +        int nameIdx = name.indexOf('.');
>>
>>           if (templateIdx == -1)
>>               templateIdx = template.length();
>> @@ -326,7 +326,7 @@
>>        */
>>       private static boolean matchWildCards(String name, String
>> template) {
>>
>> -        int wildcardIdx = template.indexOf("*");
>> +        int wildcardIdx = template.indexOf('*');
>>           if (wildcardIdx == -1)
>>               return name.equals(template);
>>
>> @@ -349,7 +349,7 @@
>>
>>               // update the match scope
>>               name = name.substring(beforeStartIdx +
>> beforeWildcard.length());
>> -            wildcardIdx = afterWildcard.indexOf("*");
>> +            wildcardIdx = afterWildcard.indexOf('*');
>>           }
>>           return name.endsWith(afterWildcard);
>>       }
>> diff -r e323c74edabd
>> src/share/classes/sun/security/util/SignatureFileVerifier.java
>> --- a/src/share/classes/sun/security/util/SignatureFileVerifier.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/util/SignatureFileVerifier.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -98,7 +98,7 @@
>>           } finally {
>>               Providers.stopJarVerification(obj);
>>           }
>> -        this.name = name.substring(0, name.lastIndexOf("."))
>> +        this.name = name.substring(0, name.lastIndexOf('.'))
>>
>> .toUpperCase(Locale.ENGLISH);
>>           this.md = md;
>>           this.signerCache = signerCache;
>> diff -r e323c74edabd
>> src/share/classes/sun/security/x509/CRLExtensions.java
>> --- a/src/share/classes/sun/security/x509/CRLExtensions.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/security/x509/CRLExtensions.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -185,7 +185,7 @@
>>           String name;
>>           String id = attr.getPrefix();
>>           if (id.equalsIgnoreCase(X509CertImpl.NAME)) { // fully
>> qualified
>> -            int index = alias.lastIndexOf(".");
>> +            int index = alias.lastIndexOf('.');
>>               name = alias.substring(index + 1);
>>           } else
>>               name = alias;
>> diff -r e323c74edabd
>> src/share/classes/sun/tools/jconsole/ConnectDialog.java
>> --- a/src/share/classes/sun/tools/jconsole/ConnectDialog.java Wed Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/tools/jconsole/ConnectDialog.java Sat Apr 26
>> 07:31:04 2014 -0300
>> @@ -325,7 +325,7 @@
>>                           } else {
>>                               String host = remoteTF.getText().trim();
>>                               String port = "0";
>> -                            int index = host.lastIndexOf(":");
>> +                            int index = host.lastIndexOf(':');
>>                               if (index >= 0) {
>>                                   port = host.substring(index + 1);
>>                                   host = host.substring(0, index);
>> diff -r e323c74edabd
>> src/share/classes/sun/tools/jconsole/inspector/Utils.java
>> --- a/src/share/classes/sun/tools/jconsole/inspector/Utils.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/tools/jconsole/inspector/Utils.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -210,7 +210,7 @@
>>       public static String getArrayClassName(String name) {
>>           String className = null;
>>           if (name.startsWith("[")) {
>> -            int index = name.lastIndexOf("[");
>> +            int index = name.lastIndexOf('[');
>>               className = name.substring(index, name.length());
>>               if (className.startsWith("[L")) {
>>                   className = className.substring(2,
>> className.length() - 1);
>> @@ -241,7 +241,7 @@
>>           if (className == null) {
>>               return name;
>>           }
>> -        int index = name.lastIndexOf("[");
>> +        int index = name.lastIndexOf('[');
>>           StringBuilder brackets = new StringBuilder(className);
>>           for (int i = 0; i <= index; i++) {
>>               brackets.append("[]");
>> diff -r e323c74edabd
>> src/share/classes/sun/tools/jconsole/inspector/XOperations.java
>> --- a/src/share/classes/sun/tools/jconsole/inspector/XOperations.java Wed
>> Apr 23 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/tools/jconsole/inspector/XOperations.java Sat
>> Apr 26 07:31:04 2014 -0300
>> @@ -112,7 +112,7 @@
>>               if (methodLabel.getText().length() > 20) {
>>                   methodLabel.setText(methodLabel.getText().
>>                           substring(methodLabel.getText().
>> -                        lastIndexOf(".") + 1,
>> +                        lastIndexOf('.') + 1,
>>                           methodLabel.getText().length()));
>>               }
>>
>> diff -r e323c74edabd
>> src/share/classes/sun/tools/jconsole/inspector/XTree.java
>> --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Wed
>> Apr 23
>> 11:35:40 2014 -0700
>> +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Sat
>> Apr 26
>> 07:31:04 2014 -0300
>> @@ -475,7 +475,7 @@
>>       private static Map<String, String> extractKeyValuePairs(
>>               String props, ObjectName mbean) {
>>           Map<String, String> map = new LinkedHashMap<String, String>();
>> -        int eq = props.indexOf("=");
>> +        int eq = props.indexOf('=');
>>           while (eq != -1) {
>>               String key = props.substring(0, eq);
>>               String value = mbean.getKeyProperty(key);
>> @@ -484,7 +484,7 @@
>>               if (props.startsWith(",")) {
>>                   props = props.substring(1);
>>               }
>> -            eq = props.indexOf("=");
>> +            eq = props.indexOf('=');
>>           }
>>           return map;
>>       }
>> @@ -821,7 +821,7 @@
>>           }
>>
>>           private void buildKeyValue() {
>> -            int index = tokenValue.indexOf("=");
>> +            int index = tokenValue.indexOf('=');
>>               if (index < 0) {
>>                   key = tokenValue;
>>                   value = tokenValue;
>>
>



More information about the core-libs-dev mailing list