Remove redundant calls of toString()

Remi Forax forax at univ-mlv.fr
Sun Apr 27 16:09:47 UTC 2014


On 04/27/2014 03:15 PM, Otávio Gonçalves de Santana wrote:
> There is an issue that was opened to remove redundant calls of toString()
> on String objects. [1]
> I went deep on all JVM sources and I found all, 32 changes.
>
>
> [1]https://bugs.openjdk.java.net/browse/JDK-8015470

Otavio,
calling toString() on a String has the side effect to implicitly check
that the reference is not null.
Do you have checked that for each redundant call, the String can never 
be null ?

regards,
Rémi

>
>
> 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 01:40:27 2014 -0300
> @@ -1653,20 +1653,20 @@
>               String expr = t.nextToken("");
>               Value val = evaluate(expr);
>               if (val == null) {
> -                MessageOutput.println("expr is null", expr.toString());
> +                MessageOutput.println("expr is null", expr);
>               } else if (dumpObject && (val instanceof ObjectReference) &&
>                          !(val instanceof StringReference)) {
>                   ObjectReference obj = (ObjectReference)val;
>                   ReferenceType refType = obj.referenceType();
>                   MessageOutput.println("expr is value",
> -                                      new Object [] {expr.toString(),
> +                                      new Object [] {expr,
>
> MessageOutput.format("grouping begin character")});
>                   dump(obj, refType, refType);
>                   MessageOutput.println("grouping end character");
>               } else {
>                     String strVal = getStringValue();
>                     if (strVal != null) {
> -                     MessageOutput.println("expr is value", new Object []
> {expr.toString(),
> +                     MessageOutput.println("expr is value", new Object []
> {expr,
>
>   strVal});
>                      }
>               }
> diff -r e323c74edabd
> src/share/classes/java/lang/annotation/IncompleteAnnotationException.java
> ---
> a/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java Wed
> Apr 23 11:35:40 2014 -0700
> +++
> b/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java Sat
> Apr 26 01:40:27 2014 -0300
> @@ -56,7 +56,7 @@
>               Class<? extends Annotation> annotationType,
>               String elementName) {
>           super(annotationType.getName() + " missing element " +
> -              elementName.toString());
> +              elementName);
>
>           this.annotationType = annotationType;
>           this.elementName = elementName;
> diff -r e323c74edabd src/share/classes/java/text/DateFormatSymbols.java
> --- a/src/share/classes/java/text/DateFormatSymbols.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/java/text/DateFormatSymbols.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -593,8 +593,8 @@
>        * pattern characters.
>        */
>       public void setLocalPatternChars(String newLocalPatternChars) {
> -        // Call toString() to throw an NPE in case the argument is null
> -        localPatternChars = newLocalPatternChars.toString();
> +
> +        localPatternChars = Objects.requireNonNull(newLocalPatternChars);
>           cachedHashCode = 0;
>       }
>
> 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 01:40:27 2014 -0300
> @@ -665,7 +665,7 @@
>                               "getFieldNames()", "Field is null");
>                   }
>               } else {
> -                responseFields[i] = currElement.getKey().toString();
> +                responseFields[i] = currElement.getKey();
>               }
>           }
>
> @@ -929,8 +929,8 @@
>               if (currElement != null) {
>                   if (currElement.getValue() != null) {
>                       // validate the field valued...
> -                    if (validateField((currElement.getKey()).toString(),
> -
>   (currElement.getValue()).toString())) {
> +                    if (validateField((currElement.getKey()),
> +                                      (currElement.getValue()))) {
>                           continue;
>                       } else {
>                           if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
> diff -r e323c74edabd src/share/classes/javax/swing/text/html/FormView.java
> --- a/src/share/classes/javax/swing/text/html/FormView.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/javax/swing/text/html/FormView.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -478,7 +478,7 @@
>                                           base.getPort(), base.getFile())
>                   : new URL(base, action);
>               if (!isPostMethod) {
> -                String query = data.toString();
> +                String query = data;
>                   actionURL = new URL(actionURL + "?" + query);
>               }
>           } catch (MalformedURLException e) {
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/Blit.java
> --- a/src/share/classes/sun/java2d/loops/Blit.java Wed Apr 23 11:35:40 2014
> -0700
> +++ b/src/share/classes/sun/java2d/loops/Blit.java Sat Apr 26 01:40:27 2014
> -0300
> @@ -50,7 +50,7 @@
>
>   public class Blit extends GraphicsPrimitive
>   {
> -    public static final String methodSignature = "Blit(...)".toString();
> +    public static final String methodSignature = "Blit(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/BlitBg.java
> --- a/src/share/classes/sun/java2d/loops/BlitBg.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/BlitBg.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -54,7 +54,7 @@
>    */
>   public class BlitBg extends GraphicsPrimitive
>   {
> -    public static final String methodSignature = "BlitBg(...)".toString();
> +    public static final String methodSignature = "BlitBg(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawGlyphList.java
> --- a/src/share/classes/sun/java2d/loops/DrawGlyphList.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawGlyphList.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -39,7 +39,7 @@
>    */
>   public class DrawGlyphList extends GraphicsPrimitive {
>
> -    public final static String methodSignature =
> "DrawGlyphList(...)".toString();
> +    public final static String methodSignature = "DrawGlyphList(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawGlyphListAA.java
> --- a/src/share/classes/sun/java2d/loops/DrawGlyphListAA.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawGlyphListAA.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -39,7 +39,7 @@
>    */
>   public class DrawGlyphListAA extends GraphicsPrimitive {
>
> -    public final static String methodSignature =
> "DrawGlyphListAA(...)".toString();
> +    public final static String methodSignature = "DrawGlyphListAA(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd
> src/share/classes/sun/java2d/loops/DrawGlyphListLCD.java
> --- a/src/share/classes/sun/java2d/loops/DrawGlyphListLCD.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawGlyphListLCD.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -40,7 +40,7 @@
>   public class DrawGlyphListLCD extends GraphicsPrimitive {
>
>       public final static String
> -        methodSignature = "DrawGlyphListLCD(...)".toString();
> +        methodSignature = "DrawGlyphListLCD(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawLine.java
> --- a/src/share/classes/sun/java2d/loops/DrawLine.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawLine.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -44,7 +44,7 @@
>    */
>   public class DrawLine extends GraphicsPrimitive
>   {
> -    public final static String methodSignature =
> "DrawLine(...)".toString();
> +    public final static String methodSignature = "DrawLine(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd
> src/share/classes/sun/java2d/loops/DrawParallelogram.java
> --- a/src/share/classes/sun/java2d/loops/DrawParallelogram.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawParallelogram.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -43,7 +43,7 @@
>   public class DrawParallelogram extends GraphicsPrimitive
>   {
>       public final static String methodSignature =
> -        "DrawParallelogram(...)".toString();
> +        "DrawParallelogram(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawPath.java
> --- a/src/share/classes/sun/java2d/loops/DrawPath.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawPath.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -39,7 +39,7 @@
>   public class DrawPath extends GraphicsPrimitive {
>
>       public final static String methodSignature =
> -        "DrawPath(...)".toString();
> +        "DrawPath(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawPolygons.java
> --- a/src/share/classes/sun/java2d/loops/DrawPolygons.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawPolygons.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -41,7 +41,7 @@
>    */
>   public class DrawPolygons extends GraphicsPrimitive
>   {
> -    public final static String methodSignature =
> "DrawPolygons(...)".toString();
> +    public final static String methodSignature = "DrawPolygons(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/DrawRect.java
> --- a/src/share/classes/sun/java2d/loops/DrawRect.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/DrawRect.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -44,7 +44,7 @@
>    */
>   public class DrawRect extends GraphicsPrimitive
>   {
> -    public final static String methodSignature =
> "DrawRect(...)".toString();
> +    public final static String methodSignature = "DrawRect(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd
> src/share/classes/sun/java2d/loops/FillParallelogram.java
> --- a/src/share/classes/sun/java2d/loops/FillParallelogram.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/FillParallelogram.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -41,7 +41,7 @@
>   public class FillParallelogram extends GraphicsPrimitive
>   {
>       public final static String methodSignature =
> -        "FillParallelogram(...)".toString();
> +        "FillParallelogram(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/FillPath.java
> --- a/src/share/classes/sun/java2d/loops/FillPath.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/FillPath.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -39,7 +39,7 @@
>   public class FillPath extends GraphicsPrimitive {
>
>       public final static String methodSignature =
> -        "FillPath(...)".toString();
> +        "FillPath(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/FillRect.java
> --- a/src/share/classes/sun/java2d/loops/FillRect.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/FillRect.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -44,7 +44,7 @@
>    */
>   public class FillRect extends GraphicsPrimitive
>   {
> -    public final static String methodSignature =
> "FillRect(...)".toString();
> +    public final static String methodSignature = "FillRect(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/FillSpans.java
> --- a/src/share/classes/sun/java2d/loops/FillSpans.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/FillSpans.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -45,7 +45,7 @@
>    */
>   public class FillSpans extends GraphicsPrimitive
>   {
> -    public final static String methodSignature =
> "FillSpans(...)".toString();
> +    public final static String methodSignature = "FillSpans(...)";
>
>       public final static int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/MaskBlit.java
> --- a/src/share/classes/sun/java2d/loops/MaskBlit.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/MaskBlit.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -48,7 +48,7 @@
>
>   public class MaskBlit extends GraphicsPrimitive
>   {
> -    public static final String methodSignature =
> "MaskBlit(...)".toString();
> +    public static final String methodSignature = "MaskBlit(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/MaskFill.java
> --- a/src/share/classes/sun/java2d/loops/MaskFill.java Wed Apr 23 11:35:40
> 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/MaskFill.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -50,11 +50,11 @@
>    */
>   public class MaskFill extends GraphicsPrimitive
>   {
> -    public static final String methodSignature =
> "MaskFill(...)".toString();
> +    public static final String methodSignature = "MaskFill(...)";
>       public static final String fillPgramSignature =
> -        "FillAAPgram(...)".toString();
> +        "FillAAPgram(...)";
>       public static final String drawPgramSignature =
> -        "DrawAAPgram(...)".toString();
> +        "DrawAAPgram(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/ScaledBlit.java
> --- a/src/share/classes/sun/java2d/loops/ScaledBlit.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/ScaledBlit.java Sat Apr 26 01:40:27
> 2014 -0300
> @@ -45,7 +45,7 @@
>
>   public class ScaledBlit extends GraphicsPrimitive
>   {
> -    public static final String methodSignature =
> "ScaledBlit(...)".toString();
> +    public static final String methodSignature = "ScaledBlit(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/TransformBlit.java
> --- a/src/share/classes/sun/java2d/loops/TransformBlit.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/TransformBlit.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -47,7 +47,7 @@
>   public class TransformBlit extends GraphicsPrimitive
>   {
>       public static final String methodSignature =
> -        "TransformBlit(...)".toString();
> +        "TransformBlit(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> diff -r e323c74edabd src/share/classes/sun/java2d/loops/TransformHelper.java
> --- a/src/share/classes/sun/java2d/loops/TransformHelper.java Wed Apr 23
> 11:35:40 2014 -0700
> +++ b/src/share/classes/sun/java2d/loops/TransformHelper.java Sat Apr 26
> 01:40:27 2014 -0300
> @@ -46,7 +46,7 @@
>   public class TransformHelper extends GraphicsPrimitive
>   {
>       public static final String methodSignature =
> -        "TransformHelper(...)".toString();
> +        "TransformHelper(...)";
>
>       public static final int primTypeID = makePrimTypeID();
>
> 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 01:40:27
> 2014 -0300
> @@ -260,11 +260,11 @@
>
>           // Convert token into meaning number for comparision
>           if (stk.hasMoreTokens())
> -            n = convertToken(stk.nextToken().toString());
> +            n = convertToken(stk.nextToken());
>
>           // Convert token into meaning number for comparision
>           if (ttk.hasMoreTokens())
> -            m = convertToken(ttk.nextToken().toString());
> +            m = convertToken(ttk.nextToken());
>
>           if (n > m)
>               return 1;
> 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
> 01:40:27 2014 -0300
> @@ -378,7 +378,7 @@
>               if (userInput instanceof XObject) {
>                   result[i] = ((XObject) userInput).getObject();
>               } else {
> -                result[i] = createObjectFromString(params[i].toString(),
> +                result[i] = createObjectFromString(params[i],
>                           (String) userInput);
>               }
>           }
>
>




More information about the core-libs-dev mailing list