Package org.tanukisoftware.wrapper.test

# Class DeadlockPrintStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.PrintStream
org.tanukisoftware.wrapper.test.DeadlockPrintStream

All Implemented Interfaces:
  `Closeable`, `Flushable`, `Appendable`, `AutoCloseable`

public class DeadlockPrintStream extends PrintStream
A print stream which can be put into a state in which all calls to write to it will result in the calling threads deadlocking in the call. Obviously, this class will not be useful to many as it is for tests.

## Field Summary

### Fields inherited from class java.io.FilterOutputStream

`out`

## Constructor Summary

Constructors
Constructor
Description
`DeadlockPrintStream(PrintStream out)`
Creates a new DeadlockPrintStream wrapped around another PrintStream.
`DeadlockPrintStream(PrintStream out, boolean autoFlush, String encoding)`
Creates a new DeadlockPrintStream wrapped around another PrintStream.

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`void`
`flush()`
`void`
`setDeadlock(boolean deadlock)`
Sets or clears the deadlock flag.
`void`
`write(byte[] b)`
`void`
`write(byte[] b, int off, int len)`
`void`
`write(int b)`

### Methods inherited from class java.io.PrintStream

`append, append, append, charset, checkError, clearError, format, format, print, print, print, print, print, print, print, print, print, printf, printf, println, println, println, println, println, println, println, println, println, println, setError, writeBytes`

### Methods inherited from class java.io.OutputStream

`nullOutputStream`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DeadlockPrintStream

public DeadlockPrintStream(PrintStream out)
Creates a new DeadlockPrintStream wrapped around another PrintStream.

Parameters:
  `out` - The PrintStream which will be wrapped by this new stream.

### DeadlockPrintStream

public DeadlockPrintStream(PrintStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException
Creates a new DeadlockPrintStream wrapped around another PrintStream.

Parameters:
  `out` - The PrintStream which will be wrapped by this new stream.
  `autoFlush` - Whether the output buffer should be automatically flushed or not. ill be passed to the parent stream.
  `encoding` - The name of a supported character encoding. Will be passed to the parent stream.
Throws:
  `UnsupportedEncodingException` - If the named encoding is not supported.

## Method Details

### write

public void write(int b)

Overrides:
  `write` in class `PrintStream`

### write

public void write(byte[] b) throws IOException

Overrides:
  `write` in class `PrintStream`
Throws:
  `IOException`

### write

public void write(byte[] b, int off, int len)

Overrides:
  `write` in class `PrintStream`

### flush

public void flush()

Specified by:
  `flush` in interface `Flushable`
Overrides:
  `flush` in class `PrintStream`

### close

public void close()

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `PrintStream`

### setDeadlock

public void setDeadlock(boolean deadlock)
Sets or clears the deadlock flag. If set, calls to any other method of this class will result in the calling thread being deadlocked. They will be released if the flag is cleared with this method.

Parameters:
  `deadlock` - True to set the flag, false to clear it.