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