1+ /*
2+ * Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3+ *
4+ * This program and the accompanying materials are made available under the
5+ * terms of the Eclipse Public License v. 2.0, which is available at
6+ * http://www.eclipse.org/legal/epl-2.0.
7+ *
8+ * This Source Code may also be made available under the following Secondary
9+ * Licenses when the conditions for such availability set forth in the
10+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11+ * version 2 with the GNU Classpath Exception, which is available at
12+ * https://www.gnu.org/software/classpath/license.html.
13+ *
14+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15+ */
16+
17+ package org .glassfish .jersey .message .internal ;
18+
19+ import java .io .IOException ;
20+ import java .io .OutputStream ;
21+ import java .util .Objects ;
22+
23+ import org .glassfish .jersey .internal .LocalizationMessages ;
24+
25+ /**
26+ * Since JDK 11 is replaced by {@link OutputStream#nullOutputStream()}
27+ */
28+ @ Deprecated (since = "3.1.7" , forRemoval = true )
29+ public class NullOutputStream extends OutputStream {
30+
31+ private volatile boolean isClosed ;
32+
33+ @ Override
34+ public void write (int b ) throws IOException {
35+ checkClosed ();
36+ }
37+
38+ @ Override
39+ public void write (byte [] b , int off , int len ) throws IOException {
40+ checkClosed ();
41+ Objects .checkFromIndexSize (off , len , b .length );
42+ }
43+
44+ @ Override
45+ public void flush () throws IOException {
46+ checkClosed ();
47+ }
48+
49+ private void checkClosed () throws IOException {
50+ if (isClosed ) {
51+ throw new IOException (LocalizationMessages .OUTPUT_STREAM_CLOSED ());
52+ }
53+ }
54+
55+ @ Override
56+ public void close () throws IOException {
57+ isClosed = true ;
58+ }
59+ }
0 commit comments