History log of /libcore/luni/src/main/java/java/io/OutputStreamWriter.java
Revision Date Author Comments
9b9e9145bc55a47be42a9d3f7ecc9f6b533739b2 14-Sep-2012 Elliott Hughes <enh@google.com> Consistently use "charsetName" for charset names.

Change-Id: I147217077790c1ddfb815e870409abade31839c6
d43b9ef11a1095967a3396b246639b563e1a4128 12-Sep-2012 Kenny Root <kroot@google.com> Add consistent reasons for NullPointerException

Semi-automated replacement of empty and non-conforming
NullPointerException reason messages.

(cherry-pick of 86acc043d3334651ee26c65467d78d6cefedd397.)

Change-Id: I6d893979f5c20a50e841e32af9fd7b2d8bc9d54d
86acc043d3334651ee26c65467d78d6cefedd397 12-Sep-2012 Kenny Root <kroot@google.com> Add consistent reasons for NullPointerException

Semi-automated replacement of empty and non-conforming
NullPointerException reason messages.

Change-Id: Iedeb4b21949e973c4042ce5982dda315f2e785e1
8e9f4948e08c238998b44228ee30aea9d57a7573 17-Feb-2011 Elliott Hughes <enh@google.com> Tidy nio->io charset name conversion.

Change-Id: I60fa7540ecaff49486985f90098f7cb9157aa9cd
33604713c5c70f9e6cad61dee6eb628db666bb22 01-Feb-2011 Elliott Hughes <enh@google.com> Improve CharsetEncoder to handle surrogates gracefully.

Behave like ICU rather than the RI, and transparently handle surrogate pairs
split across buffers. This fixes callers who were unaware of the bad design,
and shouldn't harm those callers who try to work around it (since they'll
never find themselves in the bad state).

Bug: 3408061
Change-Id: I6b5675196a14b15efdaa7084a82a483d8d2c47ad
555453327f26f4c9c610caa2851c87c3794c7764 31-Jan-2011 Elliott Hughes <enh@google.com> Tidying of OutputStreamWriter and a couple of related tests.

Change-Id: I591f573cd1e57f7bce8f47db29c8838896fa8b0b
3bdd9bb460941429ab11dfa13596768f3dc246ad 31-Jan-2011 Elliott Hughes <enh@google.com> Fix OutputStreamWriter's handling of surrogates.

CharsetEncoder doesn't behave how you'd expect. It doesn't track surrogate
pairs across calls to encode. This is true of the RI, too, not just our
ICU-based implementation. (I've included new CharsetEncoder tests to
demonstrate this. They don't all pass on Android, because we don't behave
exactly the same, but we're the same as far as is relevant for this
OutputStreamWriter bug.)

I've added new OutputStreamWriter tests too, that test the actual behavior
beyond the trivial "do we throw IllegalStateException?" tests harmony
had. Their fix for this bug didn't fix the real problem, but this patch
fixes both of the failures I found.

I think there's probably another one (marked with a TODO), but I haven't
been able to write a test to provoke it yet, and I'm unwilling to add code
I can't test.

I've also changed the behavior of OutputStreamWriter.write so that we don't
flush the underlying stream. This was a bug: only OutputStreamWriter.flush
should flush the underlying stream (as opposed to "flush" in the sense of
writing bytes from OutputStreamWriter's buffer into the underlying stream).
I've confirmed the truth of this assertion with another test.

Bug: 3403615
Change-Id: I567d49403b5498f4fb0a70fa3bfde0bd02ef430e
a1603838fe9e865575c87982e32c6343740e464c 11-Dec-2010 Elliott Hughes <enh@google.com> Lots more bounds-checking/exception-throwing consistency.

Overflow-safe checks all round, plus better detail messages. This isn't
quite everything, but it's a large chunk of the work. Most notably, this
is all of io and nio.

There are numerous changes of exception priority here, and the harmony
tests noticed a subset of them in the nio code. I've modified our checked-out
copy of the tests to accept any of the throwable exceptions.

Change-Id: Id185f1228fb9a1d5fc9494e78375b5623fb0fe14
44a9f03a2d602c7179112284d878b0db9284eb30 08-Dec-2010 Elliott Hughes <enh@google.com> Improve StringIndexOutOfBoundsException throwing.

Better, more-consistent detail messages, more regular naming, plus use of
the one true bounds-checking idiom (including reversal of sense to reduce
unnecessary indentation).

(The lack of an inlining JIT means that I couldn't factor the bounds checking
out, but at least we're working towards full duplicates rather than
near-duplicates!)

Change-Id: I59ded68169067305e747d30801c79a4c13f521b2
f3b4a80f2ecd6dd1a0df51bb74a01042b11fad97 09-Nov-2010 Jesse Wilson <jessewilson@google.com> Provide indices and length when reporting StringIndexOutOfBoundsExceptions.

Change-Id: Ib7e52678fd2aad0e15bd04b2db4b191670cd4703
7365de1056414750d0a7d1fdd26025fd247f0d04 12-Aug-2010 Jesse Wilson <jessewilson@google.com> Sorting imports.

Change-Id: I8347bc625480a1c37a1ed9976193ddfedeb00bbc
46ff2ede6c9f5ad431303d388986ec3d72b2fbd3 24-Jun-2010 Elliott Hughes <enh@google.com> Use Charset.defaultCharset() instead of "file.encoding".

It's cheaper, simpler, and we've already found that all bets are off in the RI
if you try to change "file.encoding" at runtime anyway (in terms of whether any
given class notices the change).

Also revert a premature optimization that breaks tests; saving a single
comparison before calling code that takes tens of microseconds is
counterproductive. (I have a bug to make that code faster, but it's never
going to be fast enough to worry about a single comparison.)

Also use the canonical name of ISO-8859-1, and use Charsets.UTF_8 in yet
another place I missed.

Change-Id: Ic15c2bae2f2ed57968ee7e34652f564a1420b458
b1396870f92135aa140bd2b86221768dea5bc11d 25-May-2010 Elliott Hughes <enh@google.com> Remove the luni localized exception messages.

Also fix a bug I introduced in KXmlSerializer: s.isEmpty() is not
equivalent to "".equals(s) if s is allowed to be null.

Bug: 1251121
Change-Id: I41a0a98ffb49f214041c9110f824d327af5c34e8
f33eae7e84eb6d3b0f4e86b59605bb3de73009f3 13-May-2010 Elliott Hughes <enh@google.com> Remove all trailing whitespace from the dalvik team-maintained parts of libcore.

Gentlemen, you may now set your editors to "strip trailing whitespace"...

Change-Id: I85b2f6c80e5fbef1af6cab11789790b078c11b1b
fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726 13-May-2010 Elliott Hughes <enh@google.com> Remove //$NON-NLS-\d$ cruft.

Mostly done by perl(1), with manual cleanup of the few misspelled instances.
This makes our trailing whitespace slightly worse, but I'll fix all that with
a follow-on change.

Change-Id: I0b4ca98819be6f9519c4ba980d759bd1ee1a0303
b748a9b827665a8b19d60af4b419503b45e74329 24-Mar-2010 Elliott Hughes <enh@google.com> Remove explicit 8192 arguments to BufferedReader and friends.

These were clearly added just to shut up our own warning, and are now
unnecessary and misleading to future maintainers.

There's one barely-related change: InputStreamReader and OutputStreamWriter
are very similar, and this patch makes them more similar, and adds a few
missing modifiers from their fields.

Change-Id: I959011f914ff215e92bbfa41c1bac66465803685
55392539fea537abfb6581b474918f9d611fba27 16-Dec-2009 Jesse Wilson <jessewilson@google.com> Update luni package to Harmony r888752.

Conflicts:
libcore/luni/META-INF/MANIFEST.MF
libcore/luni/make/findbugs-exclude-filter.xml
libcore/luni/src/main/java/java/io/BufferedOutputStream.java
libcore/luni/src/main/java/java/io/BufferedReader.java
libcore/luni/src/main/java/java/io/CharArrayReader.java
libcore/luni/src/main/java/java/io/StringReader.java
libcore/luni/src/main/java/java/lang/StrictMath.java
libcore/luni/src/main/java/java/lang/ref/ReferenceQueue.java
libcore/luni/src/main/java/java/net/Inet4Address.java
libcore/luni/src/main/java/java/net/InetAddress.java
libcore/luni/src/main/java/java/util/ArrayList.java
libcore/luni/src/main/java/java/util/EnumSet.java
libcore/luni/src/main/java/java/util/HugeEnumSet.java
libcore/luni/src/main/java/org/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/AbstractMemorySpy.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/DebugMemorySpy.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/Endianness.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IFileSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IMemorySystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/INetworkSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IPlatformConstants.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSMemory.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/util/InputStreamExposer.java
libcore/luni/src/main/native/hyzip/shared/zipcache.c
libcore/luni/src/main/native/hyzip/shared/zipsup.c
libcore/luni/src/main/native/include/jni.h
libcore/luni/src/main/native/include/jni_types.h
libcore/luni/src/main/native/include/jvmti.h
libcore/luni/src/main/native/include/jvmti_types.h
libcore/luni/src/main/native/launcher/unix/main_hlp.c
libcore/luni/src/main/native/luni/shared/OSNetworkSystem.c
libcore/luni/src/main/native/luni/shared/file.c
libcore/luni/src/main/native/luni/windows/makefile
libcore/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java
libcore/luni/src/test/java/tests/api/java/io/BufferedOutputStreamTest.java
libcore/luni/src/test/java/tests/api/java/io/BufferedReaderTest.java
libcore/luni/src/test/java/tests/api/java/io/SerializationStressTest.java
libcore/luni/src/test/java/tests/api/java/net/SocketTest.java
libcore/luni/src/test/java/tests/api/java/util/ArrayListTest.java
libcore/luni/src/test/java/tests/api/java/util/EnumSetTest.java
libcore/luni/src/test/java/tests/api/java/util/TimerTest.java
4fefecee9d4a5d2a4510f516b4015607b19e8d09 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
f5597e626ecf7949d249dea08c1a2964d890ec11 25-Jul-2009 Jesse Wilson <jessewilson@google.com> Integrate luni module (but not tests) to Harmony r772995.

Notable changes
- Stripped "@since Android 1.0" from many files. Most files
are now 100% the same in Dalvik and Harmony.
- AbstractStringBuilder.reverse() supports surrogates
- AbstractStringBuilder shares less to waste less memory
- Bitset optimized
- BufferedInputStream changed to support unsynchronized close()
- BufferedOutputStream does flushInternal
- BufferedReader supports EBCDIC NEL
- Collections.synchronizedList().indexOf() does a copy for more concurrency
- Classes in nio module changed: DatagramChannelImpl, SocketChannelImpl
and ServerSocketChannelImpl (these depend on internal APIs changed in
this update)
- DataInputStream/DataOutputStream now use a small buffer to limit the
number of times the underlying stream is accessed
- Date now has a minutes offset, more efficient toString()
- ExposedByteArrayInputStream: new internal class
- DeleteOnExit moved to top-level class
- FileDescriptor.isValid() now non-native
- Float, Double lessThan optimized (fix for compare(-0.0F, 0.0F) still pending)
- FileURLConnection now guesses content types from streams
- HashMap iterator changes
- Hashtable iterator changes
- INetworkSystem
- removes bind2(), createMulticastSocket, sendStream(),
- renames createSocket to createStreamSocket
- JarURLConnection rewritten
- LinkedHashMap: new iterator
- Locale, Currency, TimeZone: now use ICU in Harmony, plain Java in Dalvik
- ObjectInputStream: Accessor objects in Harmony, direct native in Dalvik
- ProxyClassFile - many changes
- String - optimized ascii for toLowerCase, toUpperCase, compare
- Timer - rewritten
- TreeMap - rewritten
- URLClassLoader - new
- URLConnection - new guessContentTypeFromStream(), uses org.apache.harmony.awt.www.content
to lookup content type handlers
adc854b798c1cfe3bfd4c27d68d5cee38ca617da 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
1c0fed63c71ddb230f3b304aac12caffbedf2f21 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
a0881d052ee72e3f7e773374e9b1aa75fbd6be4c 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
dd828f42a5c83b4270d4fbf6fce2da1878f1e84a 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
fdb2704414a9ed92394ada0d1395e4db86889465 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution