@@ -257,12 +257,12 @@ static void formatMessage(
257
257
}
258
258
}
259
259
260
- // Fast -path for patterns containing no escapes
260
+ // Slow -path for patterns containing escapes
261
261
if (analysis .escapedCharFound ) {
262
262
formatMessageContainingEscapes (buffer , pattern , args , argCount , analysis );
263
263
}
264
264
265
- // Slow -path for patterns containing escapes
265
+ // Fast -path for patterns containing no escapes
266
266
else {
267
267
formatMessageContainingNoEscapes (buffer , pattern , args , argCount , analysis );
268
268
}
@@ -487,21 +487,21 @@ private static void appendPotentiallyRecursiveValue(
487
487
private static void appendArray (
488
488
final Object o , final StringBuilder str , final Set <Object > dejaVu , final Class <?> oClass ) {
489
489
if (oClass == byte [].class ) {
490
- str . append ( Arrays . toString (( byte []) o ) );
490
+ appendArray (( byte []) o , str );
491
491
} else if (oClass == short [].class ) {
492
- str . append ( Arrays . toString (( short []) o ) );
492
+ appendArray (( short []) o , str );
493
493
} else if (oClass == int [].class ) {
494
- str . append ( Arrays . toString (( int []) o ) );
494
+ appendArray (( int []) o , str );
495
495
} else if (oClass == long [].class ) {
496
- str . append ( Arrays . toString (( long []) o ) );
496
+ appendArray (( long []) o , str );
497
497
} else if (oClass == float [].class ) {
498
- str . append ( Arrays . toString (( float []) o ) );
498
+ appendArray (( float []) o , str );
499
499
} else if (oClass == double [].class ) {
500
- str . append ( Arrays . toString (( double []) o ) );
500
+ appendArray (( double []) o , str );
501
501
} else if (oClass == boolean [].class ) {
502
- str . append ( Arrays . toString (( boolean []) o ) );
502
+ appendArray (( boolean []) o , str );
503
503
} else if (oClass == char [].class ) {
504
- str . append ( Arrays . toString (( char []) o ) );
504
+ appendArray (( char []) o , str );
505
505
} else {
506
506
// special handling of container Object[]
507
507
final Set <Object > effectiveDejaVu = getOrCreateDejaVu (dejaVu );
@@ -643,4 +643,133 @@ static String identityToString(final Object obj) {
643
643
}
644
644
return obj .getClass ().getName () + '@' + Integer .toHexString (System .identityHashCode (obj ));
645
645
}
646
+
647
+ /**
648
+ * @see Arrays#toString(byte[])
649
+ */
650
+ private static void appendArray (final byte [] a , final StringBuilder str ) {
651
+ int len = a .length ;
652
+ if (len == 0 ) {
653
+ str .append ("[]" );
654
+ return ;
655
+ }
656
+ str .append ('[' ).append (a [0 ]);
657
+ for (int i = 1 ; i < len ; i ++) {
658
+ str .append (", " ).append (a [i ]);
659
+ }
660
+ str .append (']' );
661
+ }
662
+
663
+ /**
664
+ * @see Arrays#toString(short[])
665
+ */
666
+ private static void appendArray (final short [] a , final StringBuilder str ) {
667
+ int len = a .length ;
668
+ if (len == 0 ) {
669
+ str .append ("[]" );
670
+ return ;
671
+ }
672
+ str .append ('[' ).append (a [0 ]);
673
+ for (int i = 1 ; i < len ; i ++) {
674
+ str .append (", " ).append (a [i ]);
675
+ }
676
+ str .append (']' );
677
+ }
678
+
679
+ /**
680
+ * @see Arrays#toString(int[])
681
+ */
682
+ // package protected to allow access from ParameterFormatterBenchmark
683
+ static void appendArray (final int [] a , final StringBuilder str ) {
684
+ int len = a .length ;
685
+ if (len == 0 ) {
686
+ str .append ("[]" );
687
+ return ;
688
+ }
689
+ str .append ('[' ).append (a [0 ]);
690
+ for (int i = 1 ; i < len ; i ++) {
691
+ str .append (", " ).append (a [i ]);
692
+ }
693
+ str .append (']' );
694
+ }
695
+
696
+ /**
697
+ * @see Arrays#toString(long[])
698
+ */
699
+ private static void appendArray (final long [] a , final StringBuilder str ) {
700
+ int len = a .length ;
701
+ if (len == 0 ) {
702
+ str .append ("[]" );
703
+ return ;
704
+ }
705
+ str .append ('[' ).append (a [0 ]);
706
+ for (int i = 1 ; i < len ; i ++) {
707
+ str .append (", " ).append (a [i ]);
708
+ }
709
+ str .append (']' );
710
+ }
711
+
712
+ /**
713
+ * @see Arrays#toString(float[])
714
+ */
715
+ private static void appendArray (final float [] a , final StringBuilder str ) {
716
+ int len = a .length ;
717
+ if (len == 0 ) {
718
+ str .append ("[]" );
719
+ return ;
720
+ }
721
+ str .append ('[' ).append (a [0 ]);
722
+ for (int i = 1 ; i < len ; i ++) {
723
+ str .append (", " ).append (a [i ]);
724
+ }
725
+ str .append (']' );
726
+ }
727
+
728
+ /**
729
+ * @see Arrays#toString(double[])
730
+ */
731
+ private static void appendArray (final double [] a , final StringBuilder str ) {
732
+ int len = a .length ;
733
+ if (len == 0 ) {
734
+ str .append ("[]" );
735
+ return ;
736
+ }
737
+ str .append ('[' ).append (a [0 ]);
738
+ for (int i = 1 ; i < len ; i ++) {
739
+ str .append (", " ).append (a [i ]);
740
+ }
741
+ str .append (']' );
742
+ }
743
+
744
+ /**
745
+ * @see Arrays#toString(boolean[])
746
+ */
747
+ private static void appendArray (final boolean [] a , final StringBuilder str ) {
748
+ int len = a .length ;
749
+ if (len == 0 ) {
750
+ str .append ("[]" );
751
+ return ;
752
+ }
753
+ str .append ('[' ).append (a [0 ]);
754
+ for (int i = 1 ; i < len ; i ++) {
755
+ str .append (", " ).append (a [i ]);
756
+ }
757
+ str .append (']' );
758
+ }
759
+
760
+ /**
761
+ * @see Arrays#toString(char[])
762
+ */
763
+ private static void appendArray (char [] a , final StringBuilder str ) {
764
+ int len = a .length ;
765
+ if (len == 0 ) {
766
+ str .append ("[]" );
767
+ return ;
768
+ }
769
+ str .append ('[' ).append (a [0 ]);
770
+ for (int i = 1 ; i < len ; i ++) {
771
+ str .append (", " ).append (a [i ]);
772
+ }
773
+ str .append (']' );
774
+ }
646
775
}
0 commit comments