History log of /libcore/ojluni/src/main/java/java/lang/AbstractStringBuilder.java
Revision Date Author Comments
c3155270c33344c61e2e8dc055410fc9fc215a24 13-Apr-2017 Tobias Thierer <tobiast@google.com> misc: Tweak Android change documentation, revert redundant changes.

Tweaked existing or added missing Android change documentation
for misc ojluni .java files.

Also got rid of a couple of small needless differences
(e.g. indentation) vs. upstream OpenJDK8u121-b13.

The selection of files touched by this CL is fairly arbitrary.
Future CLs will likely apply similar changes to other files.

AbstractStringBuilder: Revert minor indentation difference vs. upstream
ArrayIndexOutOfBoundsException: Tweak docs for @hide constructors
Byte: Tweak change docs
Console: Minor tweaks to minimize diff, minor improvements to change docs
DeleteOnExitHook: add missing Android-changed documentation
InterruptedIOException: Added change comment body.
HijrahChronology: Revert minor indentation difference vs. upstream
SocketTimeoutException: Added change comment body.
Serializable:: add missing Android-added documentation.
SerializablePermission: Improve toplevel documentation, added Android-changed comment

Bug: 35910877
Test: Treehugger build succeeds
Change-Id: Ia7d1236fb694fc706ae1bba7ba31b320b00a2795
5ccab91cbbddfa1c9e8d1ae63f44d923e0d7afa1 03-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> AbstrackStringBuilder capacity calculations fix.

Port from openJdk80u112:

changeset: 11450:21fd38547115
user: igerasim
date: Fri Mar 04 14:03:34 2016 +0300
summary: 8149330: Capacity of StringBuilder should not get close to Integer.MAX_VALUE unless necessary

Adding tests for this change is not possible due to memory constraints.

Test: CtsLibcoreTestCases
Bug: 31028374
Change-Id: If3a8699ba8afe5b3595f61593f8ed6cf51ad6bef
694e617f54a7bfbdad24913ce96f5d56f1a1960a 20-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port openJdk8 java.lang package, part 2

- Removed floating to/from string performance hacks
we have added on the top of openJdk7 code (no longer needed)
- AbstractStringBuilder is Appendable again, we may decide
to revert this (see b/27582395 for context)
- New String method #join

Bug: 28666126
Change-Id: I35f6dbc1199e2bd2b4a4db69d35da81679d80093
a7b3c8e92c0bdc02c4cc9e2f42ff80b732df18f6 10-May-2016 Joachim Sauer <jsauer@google.com> Fix AbstractStringBuilder gaining extra APIs.

AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).

Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.

@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).

Bug: 27582395

(cherry picked from commit 616453db2d8d018cf177e207cf8773ffcb808069)

Change-Id: Ic5f5b4abf57dbde2a5ced09503f736258ff0fa72
616453db2d8d018cf177e207cf8773ffcb808069 10-May-2016 Joachim Sauer <jsauer@google.com> Fix AbstractStringBuilder gaining extra APIs.

AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).

Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.

@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).

Bug: 27582395
Change-Id: I05e44335f65204c6956a8caadf828ea07776d6d5
cda0d81b64c3cfd70557dd3ab87826e68ee9399b 26-Apr-2016 Yi Kong <yikong@google.com> Avoid performing boundary checks in StringBuilder

We can improve performance by avoid performing boundary checks when the
indices are guaranteed to be within bound.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=180.52, 1st qu.=182.58, median=184.18, mean=187.62, 3rd qu.=194.04, max=199.31
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1035.10, 1st qu.=1035.82, median=1041.44, mean=1073.24, 3rd qu.=1106.49, max=1200.55
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=7020.29, 1st qu.=7053.57, median=7092.80, mean=7193.27, 3rd qu.=7358.86, max=7496.96

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=169.88, 1st qu.=171.93, median=173.00, mean=177.27, 3rd qu.=185.40, max=191.09
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=954.54, 1st qu.=964.95, median=975.47, mean=974.05, 3rd qu.=977.26, max=1001.69
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=5419.06, 1st qu.=5494.05, median=5563.10, mean=5672.46, 3rd qu.=5746.85, max=6347.50

Bug: 28327317
Change-Id: Ibba98a10932f07144dcd8778594eb1bc3bae2373
(cherry picked from commit 308a03fdd632d696dc92044d287b5a66e9030013)
308a03fdd632d696dc92044d287b5a66e9030013 26-Apr-2016 Yi Kong <yikong@google.com> Avoid performing boundary checks in StringBuilder

We can improve performance by avoid performing boundary checks when the
indices are guaranteed to be within bound.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=180.52, 1st qu.=182.58, median=184.18, mean=187.62, 3rd qu.=194.04, max=199.31
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1035.10, 1st qu.=1035.82, median=1041.44, mean=1073.24, 3rd qu.=1106.49, max=1200.55
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=7020.29, 1st qu.=7053.57, median=7092.80, mean=7193.27, 3rd qu.=7358.86, max=7496.96

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=169.88, 1st qu.=171.93, median=173.00, mean=177.27, 3rd qu.=185.40, max=191.09
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=954.54, 1st qu.=964.95, median=975.47, mean=974.05, 3rd qu.=977.26, max=1001.69
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=5419.06, 1st qu.=5494.05, median=5563.10, mean=5672.46, 3rd qu.=5746.85, max=6347.50

Bug: 28327317
Change-Id: Ibba98a10932f07144dcd8778594eb1bc3bae2373
4a225c9faf7984db9af0e302416a999eaba57d3b 25-Apr-2016 Yi Kong <yikong@google.com> Optimize StringBuilder.append for String with range

by using String.charsAt to avoid performing 1-by-1 copying.

Also adds a benchmark testing append for substring.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=231.16, 1st qu.=233.24, median=244.20, mean=241.41, 3rd qu.=247.49, max=252.71
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1639.48, 1st qu.=1646.44, median=1658.96, mean=1669.49, 3rd qu.=1694.87, max=1726.36
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=14867.68, 1st qu.=14914.04, median=14965.08, mean=15050.44, 3rd qu.=15189.02, max=15423.22

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=139.58, 1st qu.=141.36, median=143.44, mean=146.17, 3rd qu.=148.57, max=164.15
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=503.95, 1st qu.=507.65, median=520.78, mean=541.48, 3rd qu.=580.13, max=596.60
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=4797.27, 1st qu.=4832.23, median=4861.71, mean=4936.96, 3rd qu.=5049.35, max=5140.17

Bug: 28327317
Change-Id: I81a4b83cf4b3d854dbb635cd49669ba0bec96009
(cherry picked from commit a8d952d4388d5173dedc3a80381328fd9d7c5f07)
a8d952d4388d5173dedc3a80381328fd9d7c5f07 25-Apr-2016 Yi Kong <yikong@google.com> Optimize StringBuilder.append for String with range

by using String.charsAt to avoid performing 1-by-1 copying.

Also adds a benchmark testing append for substring.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=231.16, 1st qu.=233.24, median=244.20, mean=241.41, 3rd qu.=247.49, max=252.71
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1639.48, 1st qu.=1646.44, median=1658.96, mean=1669.49, 3rd qu.=1694.87, max=1726.36
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=14867.68, 1st qu.=14914.04, median=14965.08, mean=15050.44, 3rd qu.=15189.02, max=15423.22

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=139.58, 1st qu.=141.36, median=143.44, mean=146.17, 3rd qu.=148.57, max=164.15
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=503.95, 1st qu.=507.65, median=520.78, mean=541.48, 3rd qu.=580.13, max=596.60
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=4797.27, 1st qu.=4832.23, median=4861.71, mean=4936.96, 3rd qu.=5049.35, max=5140.17

Bug: 28327317
Change-Id: I81a4b83cf4b3d854dbb635cd49669ba0bec96009
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
9524178a7300a939242b78017f3dfa8014d4ca6d 27-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Optimize StringBuffer/Builder#appendFloat/Double/Boolean

Moved FloatingDecimal from sun.misc to java.lang package,
so it can access AbstractStringBuilder class (and do
not duplicate same code for the StringBuffer and the
StringBuilder).

FloatingDecimal is no longer instantiated, but
accessed from thread local storage and reused.

Change-Id: Id1c45cfe6f6a8b30b8550fc04ed1976772f28905
b90c36f25b990336a456daad69ea9db9256b86ce 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Track changes to the runtime representation of j.l.String.

Change-Id: I3aecd952128097258743a88f4f664024c9183ea0
51b1b6997fd3f980076b8081f7f1165ccc2a4008 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Initial import of OpenJdk files.

Create new libcore/ojluni directory with src/main/java and
src/main/native subdirectiories.

Build ojluni into core-oj jar.

Use openjdk classes from java.awt.font package.

Copy all files from jdk/src/share/classes and jdk/src/solaris/classes
directories in openjdk into libcore/ojluni/src/main/java.

Copy following native files from openjdk to
libcore/ojluni/src/main/native:
jdk/src/solaris/native/java/io/canonicalize_md.c
build/linux-amd64/include/classfile_constants.h
jdk/src/share/native/java/net/DatagramPacket.c
jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
jdk/src/share/native/java/lang/Double.c
jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h
jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
jdk/src/solaris/native/java/io/FileDescriptor_md.c
jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
jdk/src/share/native/java/io/FileInputStream.c
jdk/src/solaris/native/sun/nio/ch/FileKey.c
jdk/src/solaris/native/java/io/FileOutputStream_md.c
jdk/src/solaris/native/java/io/FileSystem_md.c
jdk/src/share/native/java/lang/Float.c
jdk/src/share/native/java/net/Inet4Address.c
jdk/src/solaris/native/java/net/Inet4AddressImpl.c
jdk/src/share/native/java/net/Inet6Address.c
jdk/src/solaris/native/java/net/Inet6AddressImpl.c
jdk/src/share/native/java/net/InetAddress.c
jdk/src/solaris/native/java/net/InetAddressImplFactory.c
jdk/src/share/native/java/io/io_util.c
jdk/src/solaris/native/sun/nio/ch/IOUtil.c
jdk/src/share/native/java/io/io_util.h
jdk/src/solaris/native/java/io/io_util_md.c
jdk/src/solaris/native/java/io/io_util_md.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h
jdk/src/share/native/java/lang/java_props.h
jdk/src/solaris/native/java/lang/java_props_md.c
jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c
jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h
jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h
jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h
jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h
jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
jdk/src/share/native/common/jlong.h
jdk/src/solaris/native/common/jlong_md.h
jdk/src/share/native/common/jni_util.c
jdk/src/share/native/common/jni_util.h
jdk/src/solaris/native/common/jni_util_md.c
jdk/src/share/javavm/export/jvm.h
jdk/src/solaris/javavm/export/jvm_md.h
jdk/src/solaris/native/java/net/linux_close.c
jdk/src/share/native/sun/misc/NativeSignalHandler.c
jdk/src/solaris/native/sun/nio/ch/NativeThread.c
jdk/src/share/native/java/net/net_util.c
jdk/src/share/native/java/net/net_util.h
jdk/src/solaris/native/java/net/net_util_md.c
jdk/src/solaris/native/java/net/net_util_md.h
jdk/src/solaris/native/java/net/NetworkInterface.c
jdk/src/share/native/sun/nio/ch/nio.h
jdk/src/solaris/native/sun/nio/ch/nio_util.h
jdk/src/share/native/java/io/ObjectStreamClass.c
jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
jdk/src/solaris/native/java/net/PlainSocketImpl.c
jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
jdk/src/share/native/java/lang/Runtime.c
jdk/src/share/native/java/lang/Shutdown.c
jdk/src/share/native/sun/misc/Signal.c
jdk/src/solaris/native/java/net/SocketInputStream.c
jdk/src/solaris/native/java/net/SocketOutputStream.c
jdk/src/share/native/java/lang/StrictMath.c
jdk/src/share/native/java/lang/String.c
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h
jdk/src/share/native/java/lang/System.c
jdk/src/share/native/java/lang/Thread.c
jdk/src/share/native/java/lang/Throwable.c
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
jdk/src/solaris/native/java/lang/UNIXProcess_md.c
jdk/src/share/native/java/util/zip/zip_util.c
jdk/src/share/native/java/util/zip/zip_util.h

Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d