use of java.io.PipedReader in project Smack by igniterealtime.
the class XMPPBOSHConnection method initDebugger.
/**
* Initialize the SmackDebugger which allows to log and debug XML traffic.
*/
@Override
protected void initDebugger() {
// TODO: Maybe we want to extend the SmackDebugger for simplification
// and a performance boost.
// Initialize a empty writer which discards all data.
writer = new Writer() {
@Override
public void write(char[] cbuf, int off, int len) {
/* ignore */
}
@Override
public void close() {
/* ignore */
}
@Override
public void flush() {
/* ignore */
}
};
// Initialize a pipe for received raw data.
try {
readerPipe = new PipedWriter();
reader = new PipedReader(readerPipe);
} catch (IOException e) {
// Ignore
}
// Call the method from the parent class which initializes the debugger.
super.initDebugger();
// Add listeners for the received and sent raw data.
client.addBOSHClientResponseListener(new BOSHClientResponseListener() {
@Override
public void responseReceived(BOSHMessageEvent event) {
if (event.getBody() != null) {
try {
readerPipe.write(event.getBody().toXML());
readerPipe.flush();
} catch (Exception e) {
// Ignore
}
}
}
});
client.addBOSHClientRequestListener(new BOSHClientRequestListener() {
@Override
public void requestSent(BOSHMessageEvent event) {
if (event.getBody() != null) {
try {
writer.write(event.getBody().toXML());
} catch (Exception e) {
// Ignore
}
}
}
});
// Create and start a thread which discards all read data.
readerConsumer = new Thread() {
private Thread thread = this;
private int bufferLength = 1024;
@Override
public void run() {
try {
char[] cbuf = new char[bufferLength];
while (readerConsumer == thread && !done) {
reader.read(cbuf, 0, bufferLength);
}
} catch (IOException e) {
// Ignore
}
}
};
readerConsumer.setDaemon(true);
readerConsumer.start();
}
use of java.io.PipedReader in project robovm by robovm.
the class OldBufferedReaderTest method test_read$CII_Exception.
public void test_read$CII_Exception() throws Exception {
br = new BufferedReader(new Support_StringReader(testString));
try {
br.read(new char[10], -1, 1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
try {
br.read(new char[10], 0, -1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
try {
br.read(new char[10], 10, 1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
//regression for HARMONY-831
try {
new BufferedReader(new PipedReader(), 9).read(new char[] {}, 7, 0);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
}
}
use of java.io.PipedReader in project j2objc by google.
the class OldBufferedReaderTest method test_read$CII_Exception.
public void test_read$CII_Exception() throws Exception {
br = new BufferedReader(new Support_StringReader(testString));
try {
br.read(new char[10], -1, 1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
try {
br.read(new char[10], 0, -1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
try {
br.read(new char[10], 10, 1);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
// Expected
}
//regression for HARMONY-831
try {
new BufferedReader(new PipedReader(), 9).read(new char[] {}, 7, 0);
fail("should throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
}
}
use of java.io.PipedReader in project j2objc by google.
the class OldPipedWriterTest method test_connectLjava_io_PipedReader.
public void test_connectLjava_io_PipedReader() throws Exception {
PipedReader rd = new PipedReader();
pw = new PipedWriter();
try {
pw.connect(rd);
} catch (Exception e) {
fail("Test 1: Unexpected exception when connecting: " + e.getLocalizedMessage());
}
readerThread = new Thread(reader = new PReader(rd), "connect");
readerThread.start();
try {
pw.write(testBuf);
} catch (IOException e) {
fail("Test 2: Unexpected IOException when writing after connecting.");
}
assertEquals("Test 3: Incorrect character string received.", testString, reader.read(testLength));
try {
pw.connect(new PipedReader());
fail("Test 4: IOException expected when reconnecting the writer.");
} catch (IOException e) {
// Expected.
}
}
use of java.io.PipedReader in project j2objc by google.
the class OldPipedWriterTest method test_write$CII.
public void test_write$CII() throws Exception {
pw = new PipedWriter();
try {
pw.write(testBuf, 0, 5);
fail("Test 1: IOException expected.");
} catch (IOException e) {
// Expected.
}
pw = new PipedWriter(new PipedReader());
try {
pw.write(testBuf, -1, 1);
fail("Test 2: IndexOutOfBoundsException expected.");
} catch (IndexOutOfBoundsException e) {
// Expected.
}
try {
pw.write(testBuf, 0, -1);
fail("Test 3: IndexOutOfBoundsException expected.");
} catch (IndexOutOfBoundsException e) {
// Expected.
}
try {
pw.write(testBuf, 5, testString.length());
fail("Test 4: IndexOutOfBoundsException expected.");
} catch (IndexOutOfBoundsException e) {
// Expected.
}
pw.close();
pw = new PipedWriter();
try {
readerThread = new Thread(reader = new PReader(pw), "writeCII");
readerThread.start();
pw.write(testBuf, 0, testLength);
pw.close();
reader.read(testLength);
assertTrue("Test 5: Characters read do not match the characters written.", Arrays.equals(testBuf, reader.buf));
} catch (IOException e) {
fail("Test 5: Unexpected IOException: " + e.getMessage());
}
readerThread.interrupt();
try {
pw.write(testBuf, 0, 5);
fail("Test 6: IOException expected.");
} catch (IOException e) {
// Expected.
}
reader.pr.close();
try {
pw.write(testBuf, 0, 5);
fail("Test 7: IOException expected.");
} catch (IOException e) {
// Expected.
}
}
Aggregations