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