Top Description Inners Fields Constructors Methods
com.sun.faces.application

pack-priv Class ByteArrayWebOutputStream

extends ServletOutputStream
Class Inheritance
Static Imports
java.util.logging.Level.FINE

This steam converts byte content to character. This implementation allows us to query whether or not the writer has been flushed or closed. This is necessary to better mimic the actual Servlet response.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class

Field Summary

Modifier and TypeField and Description
private final ByteArrayWebOutputStream.DirectByteArrayOutputStream
private boolean
private static final Logger
public static final ServletOutputStream

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
close()

Overrides jakarta.servlet.ServletOutputStream.close.

Implements java.io.Closeable.close.

Closes this output stream and releases any system resources associated with this stream.

public void
flush()

Overrides java.io.OutputStream.flush.

Implements java.io.Flushable.flush.

Flushes this output stream and forces any buffered output bytes to be written out.

public boolean
public boolean
isReady()

Implements abstract jakarta.servlet.ServletOutputStream.isReady.

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush).

public void
resetByteArray()

It's important to not expose this as reset.

public void
setWriteListener(WriteListener
the WriteListener that should be notified when it's possible to write
wl
)

Implements abstract jakarta.servlet.ServletOutputStream.setWriteListener.

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

public byte[]
public void
write(int
the byte.
n
)

Implements abstract java.io.OutputStream.write.

Writes the specified byte to this output stream.

public void
writeTo(Writer
target Writer
writer
,
String
character encoding
encoding
)

Converts the buffered bytes into chars based on the specified encoding and writes them to the provided Writer.

public void
writeTo(OutputStream
the stream to write to
stream
)

Write the buffered bytes to the provided OutputStream.

Inherited from jakarta.servlet.ServletOutputStream:
printprintprintprintprintprintprintprintlnprintlnprintlnprintlnprintlnprintlnprintlnprintlnwrite

Field Detail

baosback to summary
private final ByteArrayWebOutputStream.DirectByteArrayOutputStream baos
committedback to summary
private boolean committed
LOGGERback to summary
private static final Logger LOGGER
NOOP_STREAMback to summary
public static final ServletOutputStream NOOP_STREAM

Constructor Detail

ByteArrayWebOutputStreamback to summary
public ByteArrayWebOutputStream()

Method Detail

closeback to summary
public void close() throws IOException

Overrides jakarta.servlet.ServletOutputStream.close.

Implements java.io.Closeable.close.

Doc from jakarta.servlet.ServletOutputStream.close.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

If this method is called when the output stream is in non-blocking mode, it will immediately return with the stream effectively closed, even if the stream contains buffered data that is yet to be written to client. The container will write this data out in the background. If this process fails the WriteListener#onError(Throwable) method will be invoked as normal.

Annotations
@Override
Exceptions
IOException:

Doc from java.io.OutputStream.close.

if an I/O error occurs.

flushback to summary
public void flush() throws IOException

Overrides java.io.OutputStream.flush.

Implements java.io.Flushable.flush.

Doc from java.io.OutputStream.flush.

Flushes this output stream and forces any buffered output bytes to be written out. The general contract of flush is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.

If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
isCommittedback to summary
public boolean isCommitted()
isReadyback to summary
public boolean isReady()

Implements abstract jakarta.servlet.ServletOutputStream.isReady.

Doc from jakarta.servlet.ServletOutputStream.isReady.

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush). In blocking mode, this method will always return true, but a subsequent call to a method that writes data may block. In non-blocking mode this method may return false, in which case it is illegal to call a method that writes data and an IllegalStateException MUST be thrown. When WriteListener#onWritePossible() is called, a call to this method that returned true is implicit.

If this method returns false and a WriteListener has been set via setWriteListener(WriteListener), then container will subsequently invoke WriteListener#onWritePossible() once a write operation becomes possible without blocking. Other than the initial call, WriteListener#onWritePossible() will only be called if and only if this method is called and returns false.

Returns:boolean

true if data can be written without blocking, otherwise returns false.

Annotations
@Override
resetByteArrayback to summary
public void resetByteArray()

It's important to not expose this as reset.

setWriteListenerback to summary
public void setWriteListener(WriteListener wl)

Implements abstract jakarta.servlet.ServletOutputStream.setWriteListener.

Doc from jakarta.servlet.ServletOutputStream.setWriteListener.

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

Parameters
wl:WriteListener

the WriteListener that should be notified when it's possible to write

Annotations
@Override
toByteArrayback to summary
public byte[] toByteArray()
writeback to summary
public void write(int n)

Implements abstract java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Parameters
n:int

the byte.

Annotations
@Override
writeToback to summary
public void writeTo(Writer writer, String encoding)

Converts the buffered bytes into chars based on the specified encoding and writes them to the provided Writer.

Parameters
writer:Writer

target Writer

encoding:String

character encoding

writeToback to summary
public void writeTo(OutputStream stream)

Write the buffered bytes to the provided OutputStream.

Parameters
stream:OutputStream

the stream to write to

com.sun.faces.application back to summary

private Class ByteArrayWebOutputStream.DirectByteArrayOutputStream

extends ByteArrayOutputStream
Class Inheritance

Field Summary

Inherited from java.io.ByteArrayOutputStream:
bufcount

Constructor Summary

AccessConstructor and Description
public
DirectByteArrayOutputStream(int initialCapacity)

Method Summary

Modifier and TypeMethod and Description
public ByteBuffer

Returns:

buf wrapped in a ByteBuffer
getByteBuffer
()

Return the buffer backing this ByteArrayOutputStream as a ByteBuffer.

Inherited from java.io.ByteArrayOutputStream:
closeresetsizetoByteArraytoStringtoStringtoStringtoStringwritewritewriteByteswriteTo

Constructor Detail

DirectByteArrayOutputStreamback to summary
public DirectByteArrayOutputStream(int initialCapacity)

Method Detail

getByteBufferback to summary
public ByteBuffer getByteBuffer()

Return the buffer backing this ByteArrayOutputStream as a ByteBuffer.

Returns:ByteBuffer

buf wrapped in a ByteBuffer

com.sun.faces.application back to summary

private Class ByteArrayWebOutputStream.NoOpOutputStream

extends ServletOutputStream
Class Inheritance

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public void
close()

Overrides jakarta.servlet.ServletOutputStream.close.

Implements java.io.Closeable.close.

Closes this output stream and releases any system resources associated with this stream.

public void
flush()

Overrides java.io.OutputStream.flush.

Implements java.io.Flushable.flush.

Flushes this output stream and forces any buffered output bytes to be written out.

public boolean
isReady()

Implements abstract jakarta.servlet.ServletOutputStream.isReady.

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush).

public void
print(String
the String to send to the client
s
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a String to the client, without a carriage return-line feed (CRLF) character at the end.

public void
print(boolean
the boolean value to send to the client
b
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a boolean value to the client, with no carriage return-line feed (CRLF) character at the end.

public void
print(char
the character to send to the client
c
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a character to the client, with no carriage return-line feed (CRLF) at the end.

public void
print(int
the int to send to the client
i
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes an int to the client, with no carriage return-line feed (CRLF) at the end.

public void
print(long
the long value to send to the client
l
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a long value to the client, with no carriage return-line feed (CRLF) at the end.

public void
print(float
the float value to send to the client
v
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a float value to the client, with no carriage return-line feed (CRLF) at the end.

public void
print(double
the double value to send to the client
v
)

Overrides jakarta.servlet.ServletOutputStream.print.

Writes a double value to the client, with no carriage return-line feed (CRLF) at the end.

public void
println()

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a carriage return-line feed (CRLF) to the client.

public void
println(String
the String to write to the client
s
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a String to the client, followed by a carriage return-line feed (CRLF).

public void
println(boolean
the boolean value to write to the client
b
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a boolean value to the client, followed by a carriage return-line feed (CRLF).

public void
println(char
the character to write to the client
c
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a character to the client, followed by a carriage return-line feed (CRLF).

public void
println(int
the int to write to the client
i
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes an int to the client, followed by a carriage return-line feed (CRLF) character.

public void
println(long
the long value to write to the client
l
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a long value to the client, followed by a carriage return-line feed (CRLF).

public void
println(float
the float value to write to the client
v
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a float value to the client, followed by a carriage return-line feed (CRLF).

public void
println(double
the double value to write to the client
v
)

Overrides jakarta.servlet.ServletOutputStream.println.

Writes a double value to the client, followed by a carriage return-line feed (CRLF).

public void
setWriteListener(WriteListener
the WriteListener that should be notified when it's possible to write
wl
)

Implements abstract jakarta.servlet.ServletOutputStream.setWriteListener.

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

public void
write(int
the byte.
b
)

Implements abstract java.io.OutputStream.write.

Writes the specified byte to this output stream.

public void
write(byte[]
the data.
b
)

Overrides java.io.OutputStream.write.

Writes b.length bytes from the specified byte array to this output stream.

public void
write(byte[]
the data.
b
,
int
the start offset in the data.
off
,
int
the number of bytes to write.
len
)

Overrides java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream.

Inherited from jakarta.servlet.ServletOutputStream:
write

Constructor Detail

NoOpOutputStreamback to summary
protected NoOpOutputStream()

Method Detail

closeback to summary
public void close() throws IOException

Overrides jakarta.servlet.ServletOutputStream.close.

Implements java.io.Closeable.close.

Doc from jakarta.servlet.ServletOutputStream.close.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

If this method is called when the output stream is in non-blocking mode, it will immediately return with the stream effectively closed, even if the stream contains buffered data that is yet to be written to client. The container will write this data out in the background. If this process fails the WriteListener#onError(Throwable) method will be invoked as normal.

Annotations
@Override
Exceptions
IOException:

Doc from java.io.OutputStream.close.

if an I/O error occurs.

flushback to summary
public void flush() throws IOException

Overrides java.io.OutputStream.flush.

Implements java.io.Flushable.flush.

Doc from java.io.OutputStream.flush.

Flushes this output stream and forces any buffered output bytes to be written out. The general contract of flush is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.

If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
isReadyback to summary
public boolean isReady()

Implements abstract jakarta.servlet.ServletOutputStream.isReady.

Doc from jakarta.servlet.ServletOutputStream.isReady.

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush). In blocking mode, this method will always return true, but a subsequent call to a method that writes data may block. In non-blocking mode this method may return false, in which case it is illegal to call a method that writes data and an IllegalStateException MUST be thrown. When WriteListener#onWritePossible() is called, a call to this method that returned true is implicit.

If this method returns false and a WriteListener has been set via setWriteListener(WriteListener), then container will subsequently invoke WriteListener#onWritePossible() once a write operation becomes possible without blocking. Other than the initial call, WriteListener#onWritePossible() will only be called if and only if this method is called and returns false.

Returns:boolean

true if data can be written without blocking, otherwise returns false.

Annotations
@Override
printback to summary
public void print(String s) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a String to the client, without a carriage return-line feed (CRLF) character at the end.

Parameters
s:String

the String to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(boolean b) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a boolean value to the client, with no carriage return-line feed (CRLF) character at the end.

Parameters
b:boolean

the boolean value to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(char c) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a character to the client, with no carriage return-line feed (CRLF) at the end.

Parameters
c:char

the character to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(int i) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes an int to the client, with no carriage return-line feed (CRLF) at the end.

Parameters
i:int

the int to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(long l) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a long value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters
l:long

the long value to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(float v) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a float value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters
v:float

the float value to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printback to summary
public void print(double v) throws IOException

Overrides jakarta.servlet.ServletOutputStream.print.

Doc from jakarta.servlet.ServletOutputStream.print.

Writes a double value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters
v:double

the double value to send to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println() throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a carriage return-line feed (CRLF) to the client.

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(String s) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a String to the client, followed by a carriage return-line feed (CRLF).

Parameters
s:String

the String to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(boolean b) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a boolean value to the client, followed by a carriage return-line feed (CRLF).

Parameters
b:boolean

the boolean value to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(char c) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a character to the client, followed by a carriage return-line feed (CRLF).

Parameters
c:char

the character to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(int i) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes an int to the client, followed by a carriage return-line feed (CRLF) character.

Parameters
i:int

the int to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(long l) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a long value to the client, followed by a carriage return-line feed (CRLF).

Parameters
l:long

the long value to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(float v) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a float value to the client, followed by a carriage return-line feed (CRLF).

Parameters
v:float

the float value to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(double v) throws IOException

Overrides jakarta.servlet.ServletOutputStream.println.

Doc from jakarta.servlet.ServletOutputStream.println.

Writes a double value to the client, followed by a carriage return-line feed (CRLF).

Parameters
v:double

the double value to write to the client

Annotations
@Override
Exceptions
IOException:
if an input or output exception occurred
setWriteListenerback to summary
public void setWriteListener(WriteListener wl)

Implements abstract jakarta.servlet.ServletOutputStream.setWriteListener.

Doc from jakarta.servlet.ServletOutputStream.setWriteListener.

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

Parameters
wl:WriteListener

the WriteListener that should be notified when it's possible to write

Annotations
@Override
writeback to summary
public void write(int b) throws IOException

Implements abstract java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Parameters
b:int

the byte.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
writeback to summary
public void write(byte[] b) throws IOException

Overrides java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes b.length bytes from the specified byte array to this output stream. The general contract for write(b) is that it should have exactly the same effect as the call write(b, 0, b.length).

Parameters
b:byte[]

the data.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
writeback to summary
public void write(byte[] b, int off, int len) throws IOException

Overrides java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

Parameters
b:byte[]

the data.

off:int

the start offset in the data.

len:int

the number of bytes to write.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.