Tom Tromey wrote:
"Marco" == Marco Trudel <[EMAIL PROTECTED]> writes:
Marco> The attached CharsetEncoderTest.java fails on Windows with an
Marco> IllegalStateException. It works on Linux. I don't know why, but I
Marco> assume because it doesn't need a CharsetEncoder.
Yeah, I think the Linux code may take a different path on this
particular test case. But, I do see a similar bug here on Linux with
Mauve.
Can you send me that test? I can't reproduce it on Linux...
Marco> The problem is that this sequence will be called:
Marco> 1. encode (CharBuffer in, ByteBuffer out, boolean endOfInput = true)
Marco> -> state will be "STATE_END"
Marco> 2. flush (ByteBuffer out)
Marco> -> state will be "STATE_FLUSHED" what is basically the same as
"STATE_END"
Marco> 3. encode (CharBuffer in, ByteBuffer out, boolean endOfInput = true)
According to the JDK javadoc, this sequence is invalid. The last call
to encode must come before flush.
So, I think we have to fix the caller instead.
Yeah, makes sense. Will do.
Marco