diff options
author | Koushik Dutta <koushd@gmail.com> | 2014-07-19 00:05:40 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2014-07-19 00:05:40 -0700 |
commit | 1d43efe595480565fce5389ebe90a6e961509c73 (patch) | |
tree | 699a1cfcb35ad95460c763350735a38eec62af90 /AndroidAsync | |
parent | 0ef3156bd76047a36d1235fe9bc164f690e55715 (diff) | |
download | AndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.tar.gz AndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.tar.bz2 AndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.zip |
remove datasink.write(ByteBuffer).
Diffstat (limited to 'AndroidAsync')
21 files changed, 63 insertions, 248 deletions
diff --git a/AndroidAsync/AndroidAsync-AndroidAsync.iml b/AndroidAsync/AndroidAsync-AndroidAsync.iml index 1cdbd09..f88736b 100644 --- a/AndroidAsync/AndroidAsync-AndroidAsync.iml +++ b/AndroidAsync/AndroidAsync-AndroidAsync.iml @@ -60,6 +60,12 @@ <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> + <content url="file://$MODULE_DIR$/../compat"> + <sourceFolder url="file://$MODULE_DIR$/../compat" isTestSource="false" /> + </content> + <content url="file://$MODULE_DIR$/../conscrypt"> + <sourceFolder url="file://$MODULE_DIR$/../conscrypt" isTestSource="false" /> + </content> <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> </component> diff --git a/AndroidAsync/build.gradle b/AndroidAsync/build.gradle index 5f19dba..e193153 100644 --- a/AndroidAsync/build.gradle +++ b/AndroidAsync/build.gradle @@ -16,8 +16,8 @@ android { jniLibs.srcDirs = ['libs/'] java.srcDirs=['src/' -// , '../conscrypt/' -// , '../compat/' + , '../conscrypt/' + , '../compat/' ] } androidTest.java.srcDirs=['test/src/'] @@ -29,20 +29,6 @@ android { abortOnError false } - defaultConfig { - minSdkVersion 9 - targetSdkVersion 19 - } - - lintOptions { - abortOnError false - } - - defaultConfig { - minSdkVersion 9 - targetSdkVersion 19 - } - compileSdkVersion 19 buildToolsVersion "20.0.0" } diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java index 9a15cb2..3eb5a3c 100644 --- a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java +++ b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java @@ -102,38 +102,6 @@ public class AsyncNetworkSocket implements AsyncSocket { mKey.interestOps(SelectionKey.OP_READ); } } - - @Override - public void write(final ByteBuffer b) { - if (mServer.getAffinity() != Thread.currentThread()) { - mServer.run(new Runnable() { - @Override - public void run() { - write(b); - } - }); - return; - } - try { - if (!mChannel.isConnected()) { - assert !mChannel.isChunked(); - return; - } - - // keep writing until the the socket can't write any more, or the - // data is exhausted. - int before = b.remaining(); - mChannel.write(b); - handleRemaining(b.remaining()); - mServer.onDataSent(before - b.remaining()); - } - catch (IOException ex) { - closeInternal(); - reportEndPending(ex); - reportClose(ex); - } - } - private ByteBufferList pending = new ByteBufferList(); // private ByteBuffer[] buffers = new ByteBuffer[8]; diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java index 36d087c..7f60999 100644 --- a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java +++ b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java @@ -244,7 +244,7 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket } if (status == HandshakeStatus.NEED_WRAP) { - write(ByteBufferList.EMPTY_BYTEBUFFER); + write(writeList); } if (status == HandshakeStatus.NEED_UNWRAP) { @@ -315,65 +315,15 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket } } - private void writeTmp(ByteBuffer mWriteTmp) { - mWriteTmp.flip(); - if (mWriteTmp.remaining() > 0) - mSink.write(mWriteTmp); - assert !mWriteTmp.hasRemaining(); - } - - int calculateAlloc(int remaining) { // alloc 50% more than we need for writing int alloc = remaining * 3 / 2; if (alloc == 0) - alloc = 8182; + alloc = 8192; return alloc; } - @Override - public void write(ByteBuffer bb) { - if (mWrapping) - return; - if (mSink.remaining() > 0) - return; - mWrapping = true; - int remaining; - SSLEngineResult res = null; - ByteBuffer mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining())); - do { - // if the handshake is finished, don't send - // 0 bytes of data, since that makes the ssl connection die. - // it wraps a 0 byte package, and craps out. - if (finishedHandshake && bb.remaining() == 0) { - mWrapping = false; - return; - } - remaining = bb.remaining(); - try { - res = engine.wrap(bb, mWriteTmp); - writeTmp(mWriteTmp); - int previousCapacity = mWriteTmp.capacity(); - ByteBufferList.reclaim(mWriteTmp); - mWriteTmp = null; - if (res.getStatus() == Status.BUFFER_OVERFLOW) { - mWriteTmp = ByteBufferList.obtain(previousCapacity * 2); - remaining = -1; - } - else { - mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining())); - } - handleHandshakeStatus(res.getHandshakeStatus()); - } - catch (SSLException e) { - report(e); - } - } - while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0); - ByteBufferList.reclaim(mWriteTmp); - mWrapping = false; - } - + ByteBufferList writeList = new ByteBufferList(); @Override public void write(ByteBufferList bb) { if (mWrapping) @@ -383,7 +333,7 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket mWrapping = true; int remaining; SSLEngineResult res = null; - ByteBuffer mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining())); + ByteBuffer writeBuf = ByteBufferList.obtain(calculateAlloc(bb.remaining())); do { // if the handshake is finished, don't send // 0 bytes of data, since that makes the ssl connection die. @@ -395,18 +345,21 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket remaining = bb.remaining(); try { ByteBuffer[] arr = bb.getAllArray(); - res = engine.wrap(arr, mWriteTmp); + res = engine.wrap(arr, writeBuf); bb.addAll(arr); - writeTmp(mWriteTmp); - int previousCapacity = mWriteTmp.capacity(); - ByteBufferList.reclaim(mWriteTmp); - mWriteTmp = null; + writeBuf.flip(); + writeList.add(writeBuf); + assert !writeList.hasRemaining(); + if (writeList.remaining() > 0) + mSink.write(writeList); + int previousCapacity = writeBuf.capacity(); + writeBuf = null; if (res.getStatus() == Status.BUFFER_OVERFLOW) { - mWriteTmp = ByteBufferList.obtain(previousCapacity * 2); + writeBuf = ByteBufferList.obtain(previousCapacity * 2); remaining = -1; } else { - mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining())); + writeBuf = ByteBufferList.obtain(calculateAlloc(bb.remaining())); handleHandshakeStatus(res.getHandshakeStatus()); } } @@ -415,7 +368,6 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket } } while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0); - ByteBufferList.reclaim(mWriteTmp); mWrapping = false; } diff --git a/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java b/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java index ed4f87f..8daa836 100644 --- a/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java +++ b/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java @@ -45,27 +45,6 @@ public class BufferedDataSink implements DataSink { ByteBufferList mPendingWrites = new ByteBufferList(); @Override - public void write(ByteBuffer bb) { - if (remaining() >= getMaxBuffer()) - return; - - boolean needsWrite = true; - if (!mPendingWrites.hasRemaining()) { - needsWrite = false; - mDataSink.write(bb); - } - - if (bb.hasRemaining()) { - ByteBuffer dup = ByteBufferList.obtain(bb.remaining()); - dup.put(bb); - dup.flip(); - mPendingWrites.add(dup); - if (needsWrite) - mDataSink.write(mPendingWrites); - } - } - - @Override public void write(ByteBufferList bb) { write(bb, false); } @@ -114,11 +93,6 @@ public class BufferedDataSink implements DataSink { return mDataSink.isOpen(); } - @Override - public void close() { - mDataSink.close(); - } - boolean endPending; @Override public void end() { diff --git a/AndroidAsync/src/com/koushikdutta/async/DataSink.java b/AndroidAsync/src/com/koushikdutta/async/DataSink.java index 1866be1..7c6905c 100644 --- a/AndroidAsync/src/com/koushikdutta/async/DataSink.java +++ b/AndroidAsync/src/com/koushikdutta/async/DataSink.java @@ -1,18 +1,14 @@ package com.koushikdutta.async; -import java.nio.ByteBuffer; - import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.callback.WritableCallback; public interface DataSink { - public void write(ByteBuffer bb); public void write(ByteBufferList bb); public void setWriteableCallback(WritableCallback handler); public WritableCallback getWriteableCallback(); public boolean isOpen(); - public void close(); public void end(); public void setClosedCallback(CompletedCallback handler); public CompletedCallback getClosedCallback(); diff --git a/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java b/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java index 448eb3b..8aa1806 100644 --- a/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java +++ b/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java @@ -1,7 +1,5 @@ package com.koushikdutta.async; -import java.nio.ByteBuffer; - public class FilteredDataSink extends BufferedDataSink { public FilteredDataSink(DataSink sink) { super(sink); @@ -13,21 +11,6 @@ public class FilteredDataSink extends BufferedDataSink { } @Override - public final void write(ByteBuffer bb) { - // don't filter and write if currently buffering, unless we know - // that the buffer can fit the entirety of the filtered result - if (isBuffering() && getMaxBuffer() != Integer.MAX_VALUE) - return; - ByteBufferList list = new ByteBufferList(); - byte[] bytes = new byte[bb.remaining()]; - bb.get(bytes); - assert bb.remaining() == 0; - list.add(ByteBuffer.wrap(bytes)); - ByteBufferList filtered = filter(list); - super.write(filtered, true); - } - - @Override public final void write(ByteBufferList bb) { // don't filter and write if currently buffering, unless we know // that the buffer can fit the entirety of the filtered result diff --git a/AndroidAsync/src/com/koushikdutta/async/Util.java b/AndroidAsync/src/com/koushikdutta/async/Util.java index c065b52..18c3736 100644 --- a/AndroidAsync/src/com/koushikdutta/async/Util.java +++ b/AndroidAsync/src/com/koushikdutta/async/Util.java @@ -3,6 +3,7 @@ package com.koushikdutta.async; import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.callback.DataCallback; import com.koushikdutta.async.callback.WritableCallback; +import com.koushikdutta.async.util.Allocator; import com.koushikdutta.async.wrapper.AsyncSocketWrapper; import com.koushikdutta.async.wrapper.DataEmitterWrapper; @@ -67,7 +68,7 @@ public class Util { private void cleanup() { ds.setClosedCallback(null); ds.setWriteableCallback(null); - ByteBufferList.reclaim(pending); + pending.recycle(); pending = null; try { is.close(); @@ -76,29 +77,28 @@ public class Util { e.printStackTrace(); } } - ByteBuffer pending; - int mToAlloc = 0; - int maxAlloc = 256 * 1024; + ByteBufferList pending = new ByteBufferList(); + Allocator allocator = new Allocator(); @Override public void onWriteable() { try { do { - if (pending == null || pending.remaining() == 0) { - ByteBufferList.reclaim(pending); - pending = ByteBufferList.obtain(Math.min(Math.max(mToAlloc, 2 << 11), maxAlloc)); + if (!pending.hasRemaining()) { + ByteBuffer b = allocator.allocate(); - long toRead = Math.min(max - totalRead, pending.capacity()); - int read = is.read(pending.array(), 0, (int)toRead); + long toRead = Math.min(max - totalRead, b.capacity()); + int read = is.read(b.array(), 0, (int)toRead); if (read == -1 || totalRead == max) { cleanup(); wrapper.onCompleted(null); return; } - mToAlloc = read * 2; + allocator.track(read); totalRead += read; - pending.position(0); - pending.limit(read); + b.position(0); + b.limit(read); + pending.add(b); } ds.write(pending); diff --git a/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java b/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java index bd1e11b..bc276d6 100644 --- a/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java +++ b/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java @@ -143,7 +143,7 @@ public class Dns { } }); if (!multicast) - dgram.write(packet); + dgram.write(new ByteBufferList(packet)); else dgram.send(new InetSocketAddress("224.0.0.251", 5353), packet); return ret; diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java index 109769a..fcf0dd8 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java @@ -6,7 +6,7 @@ import com.koushikdutta.async.DataSink; import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.http.libcore.ResponseHeaders; -public interface AsyncHttpResponse extends AsyncSocket { +public interface AsyncHttpResponse extends DataEmitter { public void setEndCallback(CompletedCallback handler); public CompletedCallback getEndCallback(); public ResponseHeaders getHeaders(); diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java index 2b77b56..1bbf46c 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java @@ -20,7 +20,7 @@ import com.koushikdutta.async.util.Charsets; import java.nio.ByteBuffer; import java.nio.charset.Charset; -abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements AsyncHttpResponse { +abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements AsyncSocket, AsyncHttpResponse { private AsyncHttpRequestBody mWriter; public AsyncSocket getSocket() { @@ -183,13 +183,6 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn } DataSink mSink; - - @Override - public void write(ByteBuffer bb) { - assertContent(); - mSink.write(bb); - } - @Override public void write(ByteBufferList bb) { assertContent(); @@ -198,11 +191,10 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn @Override public void end() { - - write(ByteBuffer.wrap(new byte[0])); + if (mSink instanceof ChunkedOutputFilter) + mSink.end(); } - @Override public void setWriteableCallback(WritableCallback handler) { mSink.setWriteableCallback(handler); diff --git a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java index 851d77d..b20099b 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java @@ -713,12 +713,6 @@ public class ResponseCacheMiddleware extends SimpleMiddleware { } @Override - public void write(ByteBuffer bb) { - // it's gonna write headers and stuff... whatever - bb.limit(bb.position()); - } - - @Override public void write(ByteBufferList bb) { // it's gonna write headers and stuff... whatever bb.recycle(); diff --git a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java index 8fabcb2..eda5556 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java @@ -96,7 +96,7 @@ public class WebSocketImpl implements WebSocket { } @Override protected void sendFrame(byte[] frame) { - mSink.write(ByteBuffer.wrap(frame)); + mSink.write(new ByteBufferList(frame)); } }; mParser.setMasking(masking); @@ -215,17 +215,17 @@ public class WebSocketImpl implements WebSocket { @Override public void send(byte[] bytes) { - mSink.write(ByteBuffer.wrap(mParser.frame(bytes))); + mSink.write(new ByteBufferList((mParser.frame(bytes)))); } @Override public void send(byte[] bytes, int offset, int len) { - mSink.write(ByteBuffer.wrap(mParser.frame(bytes, offset, len))); + mSink.write(new ByteBufferList(mParser.frame(bytes, offset, len))); } @Override public void send(String string) { - mSink.write(ByteBuffer.wrap(mParser.frame(string))); + mSink.write(new ByteBufferList((mParser.frame(string)))); } private StringCallback mStringCallback; @@ -261,15 +261,6 @@ public class WebSocketImpl implements WebSocket { } @Override - public void write(ByteBuffer bb) { - byte[] buf = new byte[bb.remaining()]; - bb.get(buf); - bb.position(0); - bb.limit(0); - send(buf); - } - - @Override public void write(ByteBufferList bb) { byte[] buf = bb.getAllByteArray(); send(buf); diff --git a/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java b/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java index bec28c0..f0f18d3 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java @@ -18,4 +18,13 @@ public class ChunkedOutputFilter extends FilteredDataSink { bb.add(ByteBuffer.wrap("\r\n".getBytes())); return bb; } + + @Override + public void end() { + setMaxBuffer(Integer.MAX_VALUE); + ByteBufferList fin = new ByteBufferList(); + write(fin); + setMaxBuffer(0); + super.end(); + } } diff --git a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java index bd7211b..d1cb952 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java @@ -48,13 +48,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse { if (HttpUtil.isKeepAlive(req.getHeaders().getHeaders())) mRawHeaders.set("Connection", "Keep-Alive"); } - - @Override - public void write(ByteBuffer bb) { - if (bb.remaining() == 0) - return; - writeInternal(bb); - } @Override public void write(ByteBufferList bb) { @@ -63,15 +56,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse { writeInternal(bb); } - private void writeInternal(ByteBuffer bb) { - assert !mEnded; - if (!mHasWritten) { - initFirstWrite(); - return; - } - mSink.write(bb); - } - private void writeInternal(ByteBufferList bb) { assert !mEnded; if (!mHasWritten) { @@ -317,11 +301,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse { } @Override - public void close() { - mSocket.close(); - } - - @Override public void setClosedCallback(CompletedCallback handler) { mSink.setClosedCallback(handler); } diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java index c92f51c..484b6d4 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java @@ -46,6 +46,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler { FrameReader reader; FrameWriter writer; Variant variant; + SpdySocket zero = new SpdySocket(0, false, false, null); ByteBufferListSource source = new ByteBufferListSource(); Hashtable<Integer, SpdySocket> sockets = new Hashtable<Integer, SpdySocket>(); Protocol protocol; @@ -138,11 +139,6 @@ public class AsyncSpdyConnection implements FrameReader.Handler { } @Override - public void write(ByteBuffer bb) { - - } - - @Override public void write(ByteBufferList bb) { } @@ -238,6 +234,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler { private int nextStreamId; @Override public void headers(boolean outFinished, boolean inFinished, int streamId, int associatedStreamId, List<Header> headerBlock, HeadersMode headersMode) { + /* if (pushedStream(streamId)) { throw new AssertionError("push"); // pushHeadersLater(streamId, headerBlock, inFinished); @@ -285,6 +282,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler { // Update an existing stream. stream.receiveHeaders(headerBlock, headersMode); if (inFinished) stream.receiveFin(); + */ } @Override @@ -318,7 +316,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler { if (peerInitialWindowSize != -1 && peerInitialWindowSize != priorWriteWindowSize) { delta = peerInitialWindowSize - priorWriteWindowSize; if (!receivedInitialPeerSettings) { - addBytesToWriteWindow(delta); + zero.addBytesToWriteWindow(delta); receivedInitialPeerSettings = true; } } diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java index bddf203..837a126 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java @@ -51,7 +51,7 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware { return; } try { - long ptr = (long)sslNativePointer.get(socket.getSSLEngine()); + long ptr = (Long)sslNativePointer.get(socket.getSSLEngine()); byte[] proto = (byte[])nativeGetAlpnNegotiatedProtocol.invoke(null, ptr); String protoString = new String(proto); AsyncSpdyConnection connection = new AsyncSpdyConnection(socket, Protocol.get(protoString)); diff --git a/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java b/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java index 13bb419..185a8b7 100644 --- a/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java +++ b/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java @@ -27,11 +27,6 @@ public class OutputStreamDataSink implements DataSink { } } - @Override - public void close() { - end(); - } - AsyncServer server; public OutputStreamDataSink(AsyncServer server, OutputStream stream) { this.server = server; @@ -48,18 +43,6 @@ public class OutputStreamDataSink implements DataSink { } @Override - public void write(final ByteBuffer bb) { - try { - getOutputStream().write(bb.array(), bb.arrayOffset() + bb.position(), bb.remaining()); - } - catch (IOException e) { - reportClose(e); - } - bb.position(0); - bb.limit(0); - } - - @Override public void write(final ByteBufferList bb) { try { while (bb.size() > 0) { diff --git a/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java b/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java index 608026d..c25c1a1 100644 --- a/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java +++ b/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java @@ -21,6 +21,10 @@ public class Allocator { } public ByteBuffer allocate() { + return allocate(currentAlloc); + } + + public ByteBuffer allocate(int currentAlloc) { return ByteBufferList.obtain(Math.min(Math.max(currentAlloc, minAlloc), maxAlloc)); } diff --git a/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java b/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java index 1322e03..a50d910 100644 --- a/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java +++ b/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java @@ -186,7 +186,7 @@ public class ConscryptTests extends TestCase { System.out.println("Done handshaking! Thank you come again."); - long ptr = (long)sslNativePointer.get(engine); + long ptr = (Long)sslNativePointer.get(engine); byte[] proto = (byte[]) nativeGetAlpnNegotiatedProtocol.invoke(null, ptr); // byte[] proto = (byte[]) nativeGetNpnNegotiatedProtocol.invoke(null, ptr); String protoString = new String(proto); diff --git a/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java b/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java index 44b44fc..ebaae9d 100644 --- a/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java +++ b/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java @@ -33,7 +33,7 @@ public class Issue59 extends TestCase { Util.writeAll(response, "foobarbeepboop".getBytes(), new CompletedCallback() { @Override public void onCompleted(Exception ex) { - response.close(); + response.end(); } }); } |