inefficient indexof when String has one length

Claes Redestad claes.redestad at oracle.com
Sun Apr 27 12:22:19 UTC 2014


Possibly a few bytes in static class footprint, sure. Maybe this is 
something javac should optimize (javap on some trivial examples suggests 
this doesn't happen) rather than trying to root out all suboptimal 
cases, especially since there are bound to be a lot more code out there 
using similar patterns?

/Claes

On 2014-04-27 14:04, David Holmes wrote:
> 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