Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/sun/nio/cs/Test6392804.java
38838 views
/*1* Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24@bug 639280425@summary Decoder fails to detect decoding error26*/27import java.nio.*;28import java.nio.charset.*;2930public class Test6392804 {31public static void main(String[] args) throws Throwable {32test("ISO-2022-JP",33new byte[] {0x1b,(byte)0x8e, 0x24, 0x40, 0x0, 0x0});34test("ISO-2022-JP-2",35new byte[] {0x1b,(byte)0x8e, 0x24, 0x40, 0x0, 0x0});36test("x-windows-50220",37new byte[] {0x1b,(byte)0x8e, 0x24, 0x40, 0x0, 0x0});38test("x-windows-50221",39new byte[] {0x1b,(byte)0x8e, 0x24, 0x40, 0x0, 0x0});40test("x-windows-iso2022jp",41new byte[] {0x1b,(byte)0x8e, 0x24, 0x40, 0x0, 0x0});42test("EUC_TW",43new byte[] {(byte)0x8e, (byte)0xa8, (byte)0xad, (byte)0xe5});44//out of range second byte45test("EUC_TW",46new byte[] {(byte)0x8e, (byte)0x92, (byte)0xa1, (byte)0xa1});47test("EUC_TW",48new byte[] {(byte)0x8e, (byte)0x98, (byte)0xa1, (byte)0xa1});49}5051static void test(String csn, byte[] bytes) throws Throwable {52CharsetDecoder dec = Charset.forName(csn).newDecoder();53CharBuffer cb = CharBuffer.allocate(1024);54CoderResult cr = dec.decode(ByteBuffer.wrap(bytes), cb, true);55if (cr.isUnderflow())56throw new RuntimeException(csn + " failed cr=" + cr);57}58}596061