You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2013/08/13 17:41:15 UTC

svn commit: r1513557 [2/2] - in /qpid/proton/trunk: proton-c/bindings/java/ proton-c/bindings/java/src/main/java/org/apache/qpid/proton/engine/jni/ proton-c/bindings/java/src/main/java/org/apache/qpid/proton/messenger/jni/ proton-c/bindings/python/ pro...

Modified: qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapper.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapper.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapper.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapper.java Tue Aug 13 15:41:14 2013
@@ -34,9 +34,8 @@ import javax.net.ssl.SSLEngineResult.Han
 import javax.net.ssl.SSLEngineResult.Status;
 import javax.net.ssl.SSLException;
 
+import org.apache.qpid.proton.engine.Transport;
 import org.apache.qpid.proton.engine.TransportException;
-import org.apache.qpid.proton.engine.TransportResult;
-import org.apache.qpid.proton.engine.TransportResultFactory;
 import org.apache.qpid.proton.engine.impl.TransportInput;
 import org.apache.qpid.proton.engine.impl.TransportOutput;
 
@@ -53,9 +52,12 @@ public class SimpleSslTransportWrapper i
     private final TransportInput _underlyingInput;
     private final TransportOutput _underlyingOutput;
 
+    private boolean _tail_closed = false;
     private final ByteBuffer _inputBuffer;
 
+    private boolean _head_closed = true;
     private final ByteBuffer _outputBuffer;
+    private final ByteBuffer _head;
 
     /**
      * A buffer for the decoded bytes that will be passed to _underlyingInput.
@@ -73,13 +75,6 @@ public class SimpleSslTransportWrapper i
     private String _protocolName;
 
 
-    /**
-     * We store the last input result so that we know not to process any more input
-     * if it failed.
-     */
-    private TransportResult _lastInputResult = TransportResultFactory.ok();
-
-
     SimpleSslTransportWrapper(ProtonSslEngine sslEngine, TransportInput underlyingInput, TransportOutput underlyingOutput)
     {
         _underlyingInput = underlyingInput;
@@ -93,6 +88,8 @@ public class SimpleSslTransportWrapper i
         // as stated in SSLEngine JavaDoc.
         _inputBuffer = newWriteableBuffer(packetSize);
         _outputBuffer = newWriteableBuffer(packetSize);
+        _head = _outputBuffer.asReadOnlyBuffer();
+        _head.limit(0);
 
         _decodedInputBuffer = newReadableBuffer(effectiveAppBufferMax);
 
@@ -111,11 +108,10 @@ public class SimpleSslTransportWrapper i
      * - On exit, it is still readable and its "remaining" bytes are those that we were unable
      * to unwrap (e.g. if they don't form a whole packet).
      */
-    private TransportResult unwrapInput()
+    private void unwrapInput() throws TransportException
     {
         try
         {
-            TransportResult underlyingResult = TransportResultFactory.ok();
             boolean keepLooping = true;
             do
             {
@@ -152,21 +148,19 @@ public class SimpleSslTransportWrapper i
                         _logger.warning("WARN unexpectedly produced bytes for the underlying input when handshaking");
                     }
 
-                    underlyingResult = pourAll(_decodedInputBuffer, _underlyingInput);
+                    pourAll(_decodedInputBuffer, _underlyingInput);
                 }
 
                 keepLooping = handshakeStatus == HandshakeStatus.NOT_HANDSHAKING
-                            && sslResultStatus != Status.BUFFER_UNDERFLOW
-                            && underlyingResult.isOk();
+                            && sslResultStatus != Status.BUFFER_UNDERFLOW;
             }
             while(keepLooping);
-
-            return underlyingResult;
         }
         catch(SSLException e)
         {
-            return TransportResultFactory.error(new TransportException(
-                    "Problem during input. useClientMode: " + _sslEngine.getUseClientMode(), e));
+            throw new TransportException("Problem during input. useClientMode: "
+                                         + _sslEngine.getUseClientMode(),
+                                         e);
         }
     }
 
@@ -181,7 +175,14 @@ public class SimpleSslTransportWrapper i
         boolean keepWrapping = hasSpaceForSslPacket(_outputBuffer);
         while(keepWrapping)
         {
-            ByteBuffer clearOutputBuffer = _underlyingOutput.getOutputBuffer();
+            int pending = _underlyingOutput.pending();
+            if (pending == Transport.END_OF_STREAM)
+            {
+                _head_closed = true;
+                keepWrapping = false;
+            }
+
+            ByteBuffer clearOutputBuffer = _underlyingOutput.head();
             try
             {
                 if(clearOutputBuffer.hasRemaining())
@@ -218,7 +219,7 @@ public class SimpleSslTransportWrapper i
             }
             finally
             {
-                _underlyingOutput.outputConsumed();
+                _underlyingOutput.pop(clearOutputBuffer.position());
             }
         }
     }
@@ -288,21 +289,35 @@ public class SimpleSslTransportWrapper i
     }
 
     @Override
-    public ByteBuffer getInputBuffer()
+    public int capacity()
     {
-        _lastInputResult.checkIsOk();
+        if (_tail_closed) return Transport.END_OF_STREAM;
+        return _inputBuffer.remaining();
+    }
+
+    @Override
+    public ByteBuffer tail()
+    {
+        if (_tail_closed) throw new TransportException("tail closed");
         return _inputBuffer;
     }
 
     @Override
-    public TransportResult processInput()
+    public void process() throws TransportException
     {
+        if (_tail_closed) throw new TransportException("tail closed");
+
         _inputBuffer.flip();
 
         try
         {
-            _lastInputResult = unwrapInput();
-            return _lastInputResult;
+            unwrapInput();
+        }
+        catch (TransportException e)
+        {
+            _inputBuffer.position(_inputBuffer.limit());
+            _tail_closed = true;
+            throw e;
         }
         finally
         {
@@ -310,31 +325,51 @@ public class SimpleSslTransportWrapper i
         }
     }
 
-    /*
-     * Pre-condition of {@link #_outputBuffer}: it's writeable
-     * Post-condition of {@link #_outputBuffer}: it's readable
-     */
     @Override
-    public ByteBuffer getOutputBuffer()
+    public void close_tail()
     {
-        wrapOutput();
-        _outputBuffer.flip();
-
-        _readOnlyOutputBufferView = _outputBuffer.asReadOnlyBuffer();
-        return _readOnlyOutputBufferView;
+        try {
+            _underlyingInput.close_tail();
+        } finally {
+            _tail_closed = true;
+        }
     }
 
     @Override
-    public void outputConsumed()
+    public int pending()
     {
-        if(_readOnlyOutputBufferView == null)
+        wrapOutput();
+        _head.limit(_outputBuffer.position());
+
+        if (_head_closed && _outputBuffer.position() == 0)
         {
-            throw new IllegalStateException("Illegal invocation with previously calling getOutputBuffer");
+            return Transport.END_OF_STREAM;
+        } else {
+            return _outputBuffer.position();
         }
+    }
 
-        _outputBuffer.position(_readOnlyOutputBufferView.position());
-        _readOnlyOutputBufferView = null;
+    @Override
+    public ByteBuffer head()
+    {
+        pending();
+        return _head;
+    }
+
+    @Override
+    public void pop(int bytes)
+    {
+        _outputBuffer.flip();
+        _outputBuffer.position(bytes);
         _outputBuffer.compact();
+        _head.position(0);
+        _head.limit(_outputBuffer.position());
+    }
+
+    @Override
+    public void close_head()
+    {
+        _underlyingOutput.close_head();
     }
 
 

Modified: qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapper.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapper.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapper.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapper.java Tue Aug 13 15:41:14 2013
@@ -22,7 +22,8 @@ package org.apache.qpid.proton.engine.im
 
 import java.nio.ByteBuffer;
 
-import org.apache.qpid.proton.engine.TransportResult;
+import org.apache.qpid.proton.engine.Transport;
+import org.apache.qpid.proton.engine.TransportException;
 import org.apache.qpid.proton.engine.impl.TransportWrapper;
 
 public class SslHandshakeSniffingTransportWrapper implements SslTransportWrapper
@@ -31,6 +32,8 @@ public class SslHandshakeSniffingTranspo
     private final SslTransportWrapper _secureTransportWrapper;
     private final TransportWrapper _plainTransportWrapper;
 
+    private boolean _tail_closed = false;
+    private boolean _head_closed = true;
     private TransportWrapper _selectedTransportWrapper;
 
     private final ByteBuffer _determinationBuffer = ByteBuffer.allocate(MINIMUM_LENGTH_FOR_DETERMINATION);
@@ -44,11 +47,25 @@ public class SslHandshakeSniffingTranspo
     }
 
     @Override
-    public ByteBuffer getInputBuffer()
+    public int capacity()
     {
         if (isDeterminationMade())
         {
-            return _selectedTransportWrapper.getInputBuffer();
+            return _secureTransportWrapper.capacity();
+        }
+        else
+        {
+            if (_tail_closed) { return Transport.END_OF_STREAM; }
+            return _determinationBuffer.capacity();
+        }
+    }
+
+    @Override
+    public ByteBuffer tail()
+    {
+        if (isDeterminationMade())
+        {
+            return _selectedTransportWrapper.tail();
         }
         else
         {
@@ -57,11 +74,11 @@ public class SslHandshakeSniffingTranspo
     }
 
     @Override
-    public TransportResult processInput()
+    public void process() throws TransportException
     {
         if (isDeterminationMade())
         {
-            return _selectedTransportWrapper.processInput();
+            _selectedTransportWrapper.process();
         }
         else
         {
@@ -72,25 +89,54 @@ public class SslHandshakeSniffingTranspo
             _determinationBuffer.rewind();
 
             // TODO what if the selected transport has insufficient capacity?? Maybe use pour, and then try to finish pouring next time round.
-            _selectedTransportWrapper.getInputBuffer().put(_determinationBuffer);
-            return _selectedTransportWrapper.processInput();
+            _selectedTransportWrapper.tail().put(_determinationBuffer);
+            _selectedTransportWrapper.process();
+        }
+    }
+
+    @Override
+    public void close_tail()
+    {
+        try {
+            if (isDeterminationMade())
+            {
+                _selectedTransportWrapper.close_tail();
+            }
+        } finally {
+            _tail_closed = true;
         }
     }
 
     @Override
-    public ByteBuffer getOutputBuffer()
+    public int pending()
     {
+        if (_head_closed) { return Transport.END_OF_STREAM; }
         makePlainUnlessDeterminationAlreadyMade();
 
-        return _selectedTransportWrapper.getOutputBuffer();
+        return _selectedTransportWrapper.pending();
     }
 
     @Override
-    public void outputConsumed()
+    public ByteBuffer head()
     {
         makePlainUnlessDeterminationAlreadyMade();
 
-        _selectedTransportWrapper.outputConsumed();
+        return _selectedTransportWrapper.head();
+    }
+
+    @Override
+    public void pop(int bytes)
+    {
+        makePlainUnlessDeterminationAlreadyMade();
+
+        _selectedTransportWrapper.pop(bytes);
+    }
+
+    @Override
+    public void close_head()
+    {
+        makePlainUnlessDeterminationAlreadyMade();
+        _selectedTransportWrapper.close_head();
     }
 
     @Override

Modified: qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslImpl.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslImpl.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslImpl.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslImpl.java Tue Aug 13 15:41:14 2013
@@ -26,7 +26,7 @@ import org.apache.qpid.proton.ProtonUnsu
 import org.apache.qpid.proton.engine.Ssl;
 import org.apache.qpid.proton.engine.SslDomain;
 import org.apache.qpid.proton.engine.SslPeerDetails;
-import org.apache.qpid.proton.engine.TransportResult;
+import org.apache.qpid.proton.engine.TransportException;
 import org.apache.qpid.proton.engine.impl.TransportInput;
 import org.apache.qpid.proton.engine.impl.TransportOutput;
 import org.apache.qpid.proton.engine.impl.TransportWrapper;
@@ -100,32 +100,60 @@ public class SslImpl implements Ssl
         }
 
         @Override
-        public ByteBuffer getInputBuffer()
+        public int capacity()
         {
             initTransportWrapperOnFirstIO();
-            return _transportWrapper.getInputBuffer();
+            return _transportWrapper.capacity();
         }
 
+        @Override
+        public ByteBuffer tail()
+        {
+            initTransportWrapperOnFirstIO();
+            return _transportWrapper.tail();
+        }
+
+
+        @Override
+        public void process() throws TransportException
+        {
+            initTransportWrapperOnFirstIO();
+            _transportWrapper.process();
+        }
+
+        @Override
+        public void close_tail()
+        {
+            initTransportWrapperOnFirstIO();
+            _transportWrapper.process();
+        }
+
+        @Override
+        public int pending()
+        {
+            initTransportWrapperOnFirstIO();
+            return _transportWrapper.pending();
+        }
 
         @Override
-        public TransportResult processInput()
+        public ByteBuffer head()
         {
             initTransportWrapperOnFirstIO();
-            return _transportWrapper.processInput();
+            return _transportWrapper.head();
         }
 
         @Override
-        public ByteBuffer getOutputBuffer()
+        public void pop(int bytes)
         {
             initTransportWrapperOnFirstIO();
-            return _transportWrapper.getOutputBuffer();
+            _transportWrapper.pop(bytes);
         }
 
         @Override
-        public void outputConsumed()
+        public void close_head()
         {
             initTransportWrapperOnFirstIO();
-            _transportWrapper.outputConsumed();
+            _transportWrapper.close_head();
         }
 
         @Override

Modified: qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java Tue Aug 13 15:41:14 2013
@@ -516,10 +516,6 @@ public class MessengerImpl implements Me
                 {
                     connection.close();
                 }
-                else if (connection.getLocalState() == EndpointState.CLOSED)
-                {
-                    c.close();
-                }
             }
 
             if (c.isClosed())
@@ -564,27 +560,26 @@ public class MessengerImpl implements Me
     {
         processAllConnectors();
 
-        //wait until timeout expires or until test is true
-        long deadline = timeout < 0 ? Long.MAX_VALUE : System.currentTimeMillis() + timeout;
-
-        boolean wait = deadline > System.currentTimeMillis();
-        boolean first = true;
+        // wait until timeout expires or until test is true
+        long now = System.currentTimeMillis();
+        long deadline = timeout < 0 ? Long.MAX_VALUE : now + timeout;
         boolean done = false;
-        boolean woken = false;
 
-        while (first || (!done && wait))
+        while (true)
         {
-            if (wait && !done && !first) {
-                woken = _driver.doWait(timeout < 0 ? 0 : deadline - System.currentTimeMillis());
-            }
+            done = condition.test();
+            long remaining = deadline - now;
+            if (done || (timeout >= 0 && remaining < 0)) break;
+            boolean woken = _driver.doWait(remaining);
             processActive();
-            wait = deadline > System.currentTimeMillis();
-            done = done || woken || condition.test();
-            first = false;
-        }
-        if (woken) {
-            throw new InterruptException();
+            if (woken) {
+                throw new InterruptException();
+            }
+            if (timeout >= 0) {
+                now = System.currentTimeMillis();
+            }
         }
+
         return done;
     }
 

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/FrameParserTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/FrameParserTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/FrameParserTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/FrameParserTest.java Tue Aug 13 15:41:14 2013
@@ -23,6 +23,7 @@ import static org.apache.qpid.proton.eng
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 import static org.junit.matchers.JUnitMatchers.containsString;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.argThat;
@@ -76,68 +77,70 @@ public class FrameParserTest
     @Test
     public void testInputOfInvalidProtocolHeader_causesErrorAndRefusesFurtherInput()
     {
-        ByteBuffer buffer = _frameParser.getInputBuffer();
-        buffer.put("hello".getBytes());
-        TransportResult result = _frameParser.processInput();
-
         String headerMismatchMessage = "AMQP header mismatch";
-        assertThat(result.getErrorDescription(), containsString(headerMismatchMessage));
-        assertEquals(Status.ERROR, result.getStatus());
+        ByteBuffer buffer = _frameParser.tail();
+        buffer.put("hello".getBytes());
+        try {
+            _frameParser.process();
+            fail("expected exception");
+        } catch (TransportException e) {
+            assertThat(e.getMessage(), containsString(headerMismatchMessage));
+        }
 
         _expectedException.expect(TransportException.class);
         _expectedException.expectMessage(headerMismatchMessage);
-        _frameParser.getInputBuffer();
+        _frameParser.tail();
     }
 
     @Test
     public void testInputOfValidProtocolHeader()
     {
-        ByteBuffer buffer = _frameParser.getInputBuffer();
+        ByteBuffer buffer = _frameParser.tail();
         buffer.put(HEADER);
-        _frameParser.processInput().checkIsOk();
+        _frameParser.process();
 
-        assertNotNull(_frameParser.getInputBuffer());
+        assertNotNull(_frameParser.tail());
     }
 
     @Test
     public void testInputOfValidProtocolHeaderInMultipleChunks()
     {
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
             buffer.put(HEADER, 0, 2);
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
 
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
             buffer.put(HEADER, 2, HEADER.length - 2);
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
 
-        assertNotNull(_frameParser.getInputBuffer());
+        assertNotNull(_frameParser.tail());
     }
 
     @Test
     public void testInputOfValidFrame_invokesFrameTransportCallback()
     {
-        sendHeader().checkIsOk();
+        sendHeader();
 
         // now send an open frame
-        ByteBuffer buffer = _frameParser.getInputBuffer();
+        ByteBuffer buffer = _frameParser.tail();
 
         Open openFrame = generateOpenFrame();
         int channel = 0;
         byte[] frame = _amqpFramer.generateFrame(channel, openFrame);
         buffer.put(frame);
 
-        _frameParser.processInput().checkIsOk();
+        _frameParser.process();
         verify(_mockFrameHandler).handleFrame(frameMatching(channel, openFrame));
     }
 
     @Test
     public void testInputOfFrameInMultipleChunks_invokesFrameTransportCallback()
     {
-        sendHeader().checkIsOk();
+        sendHeader();
 
         Open openFrame = generateOpenFrame();
         int channel = 0;
@@ -148,34 +151,34 @@ public class FrameParserTest
 
         // send the first chunk
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             buffer.put(frame, 0, lengthOfFirstChunk);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
 
             verify(_mockFrameHandler, never()).handleFrame(any(TransportFrame.class));
         }
 
         // send the second chunk
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             int secondChunkOffset = lengthOfFirstChunk;
             buffer.put(frame, secondChunkOffset, lengthOfSecondChunk);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
             verify(_mockFrameHandler, never()).handleFrame(any(TransportFrame.class));
         }
 
         // send the third and final chunk
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             int thirdChunkOffset = lengthOfFirstChunk + lengthOfSecondChunk;
             buffer.put(frame, thirdChunkOffset, lengthOfThirdChunk);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
             verify(_mockFrameHandler).handleFrame(frameMatching(channel, openFrame));
         }
     }
@@ -183,7 +186,7 @@ public class FrameParserTest
     @Test
     public void testInputOfTwoFrames_invokesFrameTransportTwice()
     {
-        sendHeader().checkIsOk();
+        sendHeader();
 
         int channel = 0;
         Open openFrame = generateOpenFrame();
@@ -192,11 +195,11 @@ public class FrameParserTest
         Close closeFrame = generateCloseFrame();
         byte[] closeFrameBytes = _amqpFramer.generateFrame(channel, closeFrame);
 
-        _frameParser.getInputBuffer()
+        _frameParser.tail()
             .put(openFrameBytes)
             .put(closeFrameBytes);
 
-        _frameParser.processInput().checkIsOk();
+        _frameParser.process();
 
         InOrder inOrder = inOrder(_mockFrameHandler);
         inOrder.verify(_mockFrameHandler).handleFrame(frameMatching(channel, openFrame));
@@ -208,18 +211,18 @@ public class FrameParserTest
     {
         when(_mockFrameHandler.isHandlingFrames()).thenReturn(false);
 
-        sendHeader().checkIsOk();
+        sendHeader();
 
         // now send an open frame
         int channel = 0;
         Open openFrame = generateOpenFrame();
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             byte[] frame = _amqpFramer.generateFrame(channel, openFrame);
             buffer.put(frame);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
 
         verify(_mockFrameHandler, never()).handleFrame(any(TransportFrame.class));
@@ -229,12 +232,12 @@ public class FrameParserTest
         // now ensure that the held frame gets sent on second input
         Close closeFrame = generateCloseFrame();
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             byte[] frame = _amqpFramer.generateFrame(channel, closeFrame);
             buffer.put(frame);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
 
         InOrder inOrder = inOrder(_mockFrameHandler);
@@ -247,30 +250,30 @@ public class FrameParserTest
     {
         when(_mockFrameHandler.isHandlingFrames()).thenReturn(false);
 
-        sendHeader().checkIsOk();
+        sendHeader();
 
         // now send an open frame
         int channel = 0;
         Open openFrame = generateOpenFrame();
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             byte[] frame = _amqpFramer.generateFrame(channel, openFrame);
             buffer.put(frame);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
         verify(_mockFrameHandler, never()).handleFrame(any(TransportFrame.class));
 
         // now send a close frame
         Close closeFrame = generateCloseFrame();
         {
-            ByteBuffer buffer = _frameParser.getInputBuffer();
+            ByteBuffer buffer = _frameParser.tail();
 
             byte[] frame = _amqpFramer.generateFrame(channel, closeFrame);
             buffer.put(frame);
 
-            _frameParser.processInput().checkIsOk();
+            _frameParser.process();
         }
         verify(_mockFrameHandler, never()).handleFrame(any(TransportFrame.class));
 
@@ -283,11 +286,11 @@ public class FrameParserTest
         inOrder.verify(_mockFrameHandler).handleFrame(frameMatching(channel, closeFrame));
     }
 
-    private TransportResult sendHeader()
+    private void sendHeader() throws TransportException
     {
-        ByteBuffer buffer = _frameParser.getInputBuffer();
+        ByteBuffer buffer = _frameParser.tail();
         buffer.put(HEADER);
-        return _frameParser.processInput();
+        _frameParser.process();
     }
 
     private Open generateOpenFrame()

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/SaslFrameParserTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/SaslFrameParserTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/SaslFrameParserTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/SaslFrameParserTest.java Tue Aug 13 15:41:14 2013
@@ -35,8 +35,7 @@ import org.apache.qpid.proton.codec.Byte
 import org.apache.qpid.proton.codec.DecodeException;
 import org.apache.qpid.proton.codec.DecoderImpl;
 import org.apache.qpid.proton.codec.EncoderImpl;
-import org.apache.qpid.proton.engine.TransportResult;
-import org.apache.qpid.proton.engine.TransportResult.Status;
+import org.apache.qpid.proton.engine.TransportException;
 import org.junit.Test;
 
 /**
@@ -73,8 +72,7 @@ public class SaslFrameParserTest
 
         when(_mockSaslFrameHandler.isDone()).thenReturn(false);
 
-        TransportResult result = _frameParser.input(_saslFrameBytes);
-        result.checkIsOk();
+        _frameParser.input(_saslFrameBytes);
 
         verify(_mockSaslFrameHandler).handle(isA(SaslInit.class), (Binary)isNull());
     }
@@ -88,16 +86,22 @@ public class SaslFrameParserTest
         when(_mockDecoder.readObject()).thenThrow(new DecodeException(exceptionMessage));
 
         // We send a valid frame but the mock decoder has been configured to reject it
-        TransportResult result = _frameParserWithMockDecoder.input(_saslFrameBytes);
-
-        assertEquals(Status.ERROR, result.getStatus());
-        assertThat(result.getErrorDescription(), containsString(exceptionMessage));
+        try {
+            _frameParserWithMockDecoder.input(_saslFrameBytes);
+            fail("expected exception");
+        } catch (TransportException e) {
+            assertThat(e.getMessage(), containsString(exceptionMessage));
+        }
 
         verify(_mockSaslFrameHandler, never()).handle(any(SaslFrameBody.class), any(Binary.class));
 
         // Check that any further interaction causes an error TransportResult.
-        result = _frameParserWithMockDecoder.input(ByteBuffer.wrap("".getBytes()));
-        assertEquals(Status.ERROR, result.getStatus());
+        try {
+            _frameParserWithMockDecoder.input(ByteBuffer.wrap("".getBytes()));
+            fail("expected exception");
+        } catch (TransportException e) {
+            // this is expected
+        }
     }
 
     @Test
@@ -109,21 +113,27 @@ public class SaslFrameParserTest
         when(_mockDecoder.readObject()).thenReturn(nonSaslFrame);
 
         // We send a valid frame but the mock decoder has been configured to reject it
-        TransportResult result = _frameParserWithMockDecoder.input(_saslFrameBytes);
-
-        assertEquals(Status.ERROR, result.getStatus());
-        assertThat(result.getErrorDescription(), containsString("Unexpected frame type encountered."));
+        try {
+            _frameParserWithMockDecoder.input(_saslFrameBytes);
+            fail("expected exception");
+        } catch (TransportException e) {
+            assertThat(e.getMessage(), containsString("Unexpected frame type encountered."));
+        }
 
         verify(_mockSaslFrameHandler, never()).handle(any(SaslFrameBody.class), any(Binary.class));
 
         // Check that any further interaction causes an error TransportResult.
-        result = _frameParserWithMockDecoder.input(ByteBuffer.wrap("".getBytes()));
-        assertEquals(Status.ERROR, result.getStatus());
+        try {
+            _frameParserWithMockDecoder.input(ByteBuffer.wrap("".getBytes()));
+            fail("expected exception");
+        } catch (TransportException e) {
+            // this is expected
+        }
     }
 
     private void sendAmqpSaslHeader(SaslFrameParser saslFrameParser)
     {
-        saslFrameParser.input(ByteBuffer.wrap(AmqpHeader.SASL_HEADER)).checkIsOk();
+        saslFrameParser.input(ByteBuffer.wrap(AmqpHeader.SASL_HEADER));
     }
 
 }

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java Tue Aug 13 15:41:14 2013
@@ -63,10 +63,16 @@ public class TransportImplTest
     }
 
     @Test
-    public void testUseOfProcessInputBeforeGetInputBuffer_causesIllegalStateException()
+    public void testInitialProcessIsNoop()
     {
-        _expectedException.expect(IllegalStateException.class);
-        _transport.processInput();
+        _transport.process();
+    }
+
+    @Test
+    public void testProcessIsIdempotent()
+    {
+        _transport.process();
+        _transport.process();
     }
 
     /**

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptorTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptorTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptorTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptorTest.java Tue Aug 13 15:41:14 2013
@@ -37,7 +37,7 @@ public class TransportOutputAdaptorTest
     @Test
     public void testThatOutputBufferIsReadOnly()
     {
-        assertTrue(_transportOutput.getOutputBuffer().isReadOnly());
+        assertTrue(_transportOutput.head().isReadOnly());
     }
 
     @Test
@@ -46,16 +46,17 @@ public class TransportOutputAdaptorTest
         byte[] testBytes = "testbytes".getBytes();
         _transportOutputWriter.setNextCannedOutput(testBytes);
 
-        final ByteBuffer outputBuffer = _transportOutput.getOutputBuffer();
+        assertEquals(testBytes.length, _transportOutput.pending());
+        final ByteBuffer outputBuffer = _transportOutput.head();
         assertEquals(testBytes.length, outputBuffer.remaining());
 
         byte[] outputBytes = new byte[testBytes.length];
         outputBuffer.get(outputBytes);
         assertByteArrayContentEquals(testBytes, outputBytes);
 
-        _transportOutput.outputConsumed();
+        _transportOutput.pop(outputBuffer.position());
 
-        final ByteBuffer outputBuffer2 = _transportOutput.getOutputBuffer();
+        final ByteBuffer outputBuffer2 = _transportOutput.head();
         assertEquals(0, outputBuffer2.remaining());
     }
 
@@ -71,18 +72,18 @@ public class TransportOutputAdaptorTest
         int chunk2Size = testBytes.length - chunk1Size;
 
         {
-            final ByteBuffer outputBuffer1 = _transportOutput.getOutputBuffer();
+            final ByteBuffer outputBuffer1 = _transportOutput.head();
             byte[] byteArray1 = new byte[chunk1Size];
 
             outputBuffer1.get(byteArray1);
             assertEquals(chunk2Size, outputBuffer1.remaining());
             assertByteArrayContentEquals(copyOfRange(testBytes, 0, chunk1Size), byteArray1);
 
-            _transportOutput .outputConsumed();
+            _transportOutput.pop(outputBuffer1.position());
         }
 
         {
-            final ByteBuffer outputBuffer2 = _transportOutput.getOutputBuffer();
+            final ByteBuffer outputBuffer2 = _transportOutput.head();
             int chunk2Offset = chunk1Size;
             assertByteBufferContentEquals(copyOfRange(testBytes, chunk2Offset, testBytes.length), outputBuffer2);
         }
@@ -99,21 +100,21 @@ public class TransportOutputAdaptorTest
         int initialRemaining = initialBytes.length - chunk1Size;
 
         {
-            final ByteBuffer outputBuffer1 = _transportOutput.getOutputBuffer();
+            final ByteBuffer outputBuffer1 = _transportOutput.head();
             byte[] byteArray1 = new byte[chunk1Size];
 
             outputBuffer1.get(byteArray1);
             assertEquals(initialRemaining, outputBuffer1.remaining());
             assertByteArrayContentEquals(copyOfRange(initialBytes, 0, chunk1Size), byteArray1);
 
-            _transportOutput .outputConsumed();
+            _transportOutput.pop(outputBuffer1.position());
         }
 
         byte[] additionalBytes = "wxyz".getBytes();
         _transportOutputWriter.setNextCannedOutput(additionalBytes);
 
         {
-            final ByteBuffer outputBuffer2 = _transportOutput.getOutputBuffer();
+            final ByteBuffer outputBuffer2 = _transportOutput.head();
 
             byte[] expectedBytes = "cdwxyz".getBytes();
             assertByteBufferContentEquals(expectedBytes, outputBuffer2);
@@ -122,10 +123,11 @@ public class TransportOutputAdaptorTest
 
     private static final class CannedTransportOutputWriter implements TransportOutputWriter
     {
+
         byte[] _cannedOutput = new byte[0];
 
         @Override
-        public void writeInto(ByteBuffer outputBuffer)
+        public boolean writeInto(ByteBuffer outputBuffer)
         {
             int bytesWritten = ByteBufferUtils.pourArrayToBuffer(_cannedOutput, 0, _cannedOutput.length, outputBuffer);
             if(bytesWritten < _cannedOutput.length)
@@ -133,11 +135,17 @@ public class TransportOutputAdaptorTest
                 fail("Unable to write all " + _cannedOutput.length + " bytes of my canned output to the provided output buffer: " + outputBuffer);
             }
             _cannedOutput = new byte[0];
+            return false;
         }
 
         void setNextCannedOutput(byte[] cannedOutput)
         {
             _cannedOutput = cannedOutput;
         }
+
+        public void closed()
+        {
+            // do nothing
+        }
     }
 }

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/CannedTransportOutput.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/CannedTransportOutput.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/CannedTransportOutput.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/CannedTransportOutput.java Tue Aug 13 15:41:14 2013
@@ -28,6 +28,7 @@ public class CannedTransportOutput imple
 {
 
     private ByteBuffer _cannedOutput;
+    private ByteBuffer _head;
 
     public CannedTransportOutput()
     {
@@ -41,18 +42,32 @@ public class CannedTransportOutput imple
     public void setOutput(String output)
     {
         _cannedOutput = ByteBuffer.wrap(output.getBytes());
+        _head = _cannedOutput.asReadOnlyBuffer();
     }
 
     @Override
-    public ByteBuffer getOutputBuffer()
+    public int pending()
     {
-        return _cannedOutput;
+        return _head.remaining();
     }
 
     @Override
-    public void outputConsumed()
+    public ByteBuffer head()
     {
-        // no-op
+        return _head;
+    }
+
+    @Override
+    public void pop(int bytes)
+    {
+        _cannedOutput.position(bytes);
+        _head.position(bytes);
+    }
+
+    @Override
+    public void close_head()
+    {
+        // do nothing
     }
 
 

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/RememberingTransportInput.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/RememberingTransportInput.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/RememberingTransportInput.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/RememberingTransportInput.java Tue Aug 13 15:41:14 2013
@@ -22,16 +22,15 @@ package org.apache.qpid.proton.engine.im
 
 import java.nio.ByteBuffer;
 
-import org.apache.qpid.proton.engine.TransportResult;
-import org.apache.qpid.proton.engine.TransportResultFactory;
+import org.apache.qpid.proton.engine.TransportException;
 import org.apache.qpid.proton.engine.impl.TransportInput;
 
 class RememberingTransportInput implements TransportInput
 {
     private StringBuilder _receivedInput = new StringBuilder();
-    private ByteBuffer _buffer;
-    private TransportResult _nextErrorResult;
+    private String _nextError;
     private int _inputBufferSize = 1024;
+    private ByteBuffer _buffer = ByteBuffer.allocate(_inputBufferSize);
 
     String getAcceptedInput()
     {
@@ -45,30 +44,41 @@ class RememberingTransportInput implemen
     }
 
     @Override
-    public ByteBuffer getInputBuffer()
+    public int capacity()
+    {
+        return _buffer.remaining();
+    }
+
+    @Override
+    public ByteBuffer tail()
     {
-        _buffer = ByteBuffer.allocate(_inputBufferSize);
         return _buffer;
     }
 
     @Override
-    public TransportResult processInput()
+    public void process() throws TransportException
     {
-        if(_nextErrorResult != null)
+        if(_nextError != null)
         {
-            return _nextErrorResult;
+            throw new TransportException(_nextError);
         }
 
         _buffer.flip();
         byte[] receivedInputBuffer = new byte[_buffer.remaining()];
         _buffer.get(receivedInputBuffer);
+        _buffer.compact();
         _receivedInput.append(new String(receivedInputBuffer));
-        return TransportResultFactory.ok();
     }
 
-    public void rejectNextInput(TransportResult nextErrorResult)
+    @Override
+    public void close_tail()
+    {
+        // do nothing
+    }
+
+    public void rejectNextInput(String nextError)
     {
-        _nextErrorResult = nextErrorResult;
+        _nextError = nextError;
     }
 
     public void setInputBufferSize(int inputBufferSize)

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapperTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapperTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapperTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SimpleSslTransportWrapperTest.java Tue Aug 13 15:41:14 2013
@@ -26,14 +26,13 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.nio.ByteBuffer;
 
 import javax.net.ssl.SSLException;
 
 import org.apache.qpid.proton.engine.TransportException;
-import org.apache.qpid.proton.engine.TransportResult;
-import org.apache.qpid.proton.engine.TransportResultFactory;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -132,36 +131,40 @@ public class SimpleSslTransportWrapperTe
         SSLException sslException = new SSLException("unwrap exception");
         _dummySslEngine.rejectNextEncodedPacket(sslException);
 
-        _sslWrapper.getInputBuffer().put("<-A->".getBytes());
-        TransportResult result = _sslWrapper.processInput();
-        assertEquals(TransportResult.Status.ERROR, result.getStatus());
-        assertSame(sslException, result.getException().getCause());
-        assertEquals("", _underlyingInput.getAcceptedInput());
+        _sslWrapper.tail().put("<-A->".getBytes());
+        try {
+            _sslWrapper.process();
+            fail("no exception");
+        } catch (TransportException e) {
+            assertSame(sslException, e.getCause());
+            assertEquals("", _underlyingInput.getAcceptedInput());
+        }
 
         _expectedException.expect(TransportException.class);
-        _sslWrapper.getInputBuffer();
+        _sslWrapper.tail();
     }
 
     @Test
     public void testUnderlyingInputReturnsErrorResult_returnsErrorResultAndRefusesFurtherInput() throws Exception
     {
         String underlyingErrorDescription = "dummy underlying error";
-        TransportResult underlyingErrorResult = TransportResultFactory.error(underlyingErrorDescription);
-        _underlyingInput.rejectNextInput(underlyingErrorResult);
-
-        _sslWrapper.getInputBuffer().put("<-A->".getBytes());
+        _underlyingInput.rejectNextInput(underlyingErrorDescription);
 
-        TransportResult result = _sslWrapper.processInput();
+        _sslWrapper.tail().put("<-A->".getBytes());
 
-        assertEquals(TransportResult.Status.ERROR, result.getStatus());
-        assertEquals(underlyingErrorDescription, result.getErrorDescription());
+        try {
+            _sslWrapper.process();
+            fail("no exception");
+        } catch (TransportException e) {
+            assertEquals(underlyingErrorDescription, e.getMessage());
+        }
     }
 
     @Test
-    public void testGetOutputBufferIsReadOnly()
+    public void testHeadIsReadOnly()
     {
         _underlyingOutput.setOutput("");
-        assertTrue(_sslWrapper.getOutputBuffer().isReadOnly());
+        assertTrue(_sslWrapper.head().isReadOnly());
     }
 
     @Test
@@ -169,7 +172,7 @@ public class SimpleSslTransportWrapperTe
     {
         _underlyingOutput.setOutput("a_");
 
-        ByteBuffer outputBuffer = _sslWrapper.getOutputBuffer();
+        ByteBuffer outputBuffer = _sslWrapper.head();
 
         assertByteBufferContentEquals("<-A->".getBytes(), outputBuffer);
     }
@@ -196,17 +199,17 @@ public class SimpleSslTransportWrapperTe
         _underlyingOutput.setOutput("a_b_");
 
         {
-            ByteBuffer buffer = _sslWrapper.getOutputBuffer();
+            ByteBuffer buffer = _sslWrapper.head();
             String output = pourBufferToString(buffer, 2);
             assertEquals("<-", output);
-            _sslWrapper.outputConsumed();
+            _sslWrapper.pop(buffer.position());
         }
 
         {
-            ByteBuffer buffer = _sslWrapper.getOutputBuffer();
+            ByteBuffer buffer = _sslWrapper.head();
             String output = pourBufferToString(buffer, 3);
             assertEquals("A->", output);
-            _sslWrapper.outputConsumed();
+            _sslWrapper.pop(buffer.position());
         }
 
         assertEquals("<-B->", getAllBytesFromTransport());
@@ -217,7 +220,7 @@ public class SimpleSslTransportWrapperTe
     {
         _underlyingOutput.setOutput("");
 
-        assertFalse(_sslWrapper.getOutputBuffer().hasRemaining());
+        assertFalse(_sslWrapper.head().hasRemaining());
     }
 
     private void putBytesIntoTransport(String encodedBytes)
@@ -225,10 +228,10 @@ public class SimpleSslTransportWrapperTe
         ByteBuffer byteBuffer = ByteBuffer.wrap(encodedBytes.getBytes());
         while(byteBuffer.hasRemaining())
         {
-            int numberPoured = pour(byteBuffer, _sslWrapper.getInputBuffer());
+            int numberPoured = pour(byteBuffer, _sslWrapper.tail());
             assertTrue("We should be able to pour some bytes into the input buffer",
                     numberPoured > 0);
-            _sslWrapper.processInput().checkIsOk();
+            _sslWrapper.process();
         }
     }
 
@@ -238,12 +241,12 @@ public class SimpleSslTransportWrapperTe
         boolean continueLooping;
         do
         {
-            ByteBuffer buffer = _sslWrapper.getOutputBuffer();
+            ByteBuffer buffer = _sslWrapper.head();
             continueLooping = buffer.hasRemaining();
 
             readBytes.append(pourBufferToString(buffer));
 
-            _sslWrapper.outputConsumed();
+            _sslWrapper.pop(buffer.position());
         }
         while(continueLooping);
 

Modified: qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapperTest.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapperTest.java?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapperTest.java (original)
+++ qpid/proton/trunk/proton-j/proton/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslHandshakeSniffingTransportWrapperTest.java Tue Aug 13 15:41:14 2013
@@ -72,28 +72,29 @@ public class SslHandshakeSniffingTranspo
         ByteBuffer underlyingOutputBuffer = ByteBuffer.wrap(output);
 
         // set up underlying transport
-        when(transportThatShouldBeUsed.getInputBuffer()).thenReturn(underlyingInputBuffer);
-        when(transportThatShouldBeUsed.getOutputBuffer()).thenReturn(underlyingOutputBuffer);
+        when(transportThatShouldBeUsed.tail()).thenReturn(underlyingInputBuffer);
+        when(transportThatShouldBeUsed.head()).thenReturn(underlyingOutputBuffer);
 
         // do input and verify underlying calls were made
-        ByteBuffer inputBuffer = _sniffingWrapper.getInputBuffer();
+        ByteBuffer inputBuffer = _sniffingWrapper.tail();
         inputBuffer.put(input);
-        _sniffingWrapper.processInput();
+        _sniffingWrapper.process();
 
-        verify(transportThatShouldBeUsed).getInputBuffer();
-        verify(transportThatShouldBeUsed).processInput();
+        verify(transportThatShouldBeUsed).tail();
+        verify(transportThatShouldBeUsed).process();
 
         // check the wrapped input actually received the expected bytes
         underlyingInputBuffer.flip();
         assertByteBufferContentEquals(input, underlyingInputBuffer);
 
         // do output and check we get the correct transport's output
-        ByteBuffer outputBuffer = _sniffingWrapper.getOutputBuffer();
-        verify(transportThatShouldBeUsed).getOutputBuffer();
+        ByteBuffer outputBuffer = _sniffingWrapper.head();
+        verify(transportThatShouldBeUsed).head();
 
         assertByteBufferContentEquals(output, outputBuffer);
-        _sniffingWrapper.outputConsumed();
-        verify(transportThatShouldBeUsed).outputConsumed();
+        int consumed = outputBuffer.position();
+        _sniffingWrapper.pop(consumed);
+        verify(transportThatShouldBeUsed).pop(consumed);
 
         verifyZeroInteractionsWithOtherTransport(transportThatShouldBeUsed);
     }
@@ -105,10 +106,10 @@ public class SslHandshakeSniffingTranspo
 
         try
         {
-            _sniffingWrapper.getInputBuffer().put(sourceBuffer);
+            _sniffingWrapper.tail().put(sourceBuffer);
 
             _expectedException.expect(IllegalArgumentException.class);
-            _sniffingWrapper.processInput();
+            _sniffingWrapper.process();
         }
         finally
         {
@@ -150,10 +151,10 @@ public class SslHandshakeSniffingTranspo
             String expectedCipherName, String expectedProtocolName)
     {
         ByteBuffer underlyingInputBuffer = ByteBuffer.allocate(1024);
-        when(transportThatShouldBeUsed.getInputBuffer()).thenReturn(underlyingInputBuffer);
+        when(transportThatShouldBeUsed.tail()).thenReturn(underlyingInputBuffer);
 
-        _sniffingWrapper.getInputBuffer().put(input);
-        _sniffingWrapper.processInput();
+        _sniffingWrapper.tail().put(input);
+        _sniffingWrapper.process();
 
         assertEquals(expectedCipherName, _sniffingWrapper.getCipherName());
         assertEquals(expectedProtocolName, _sniffingWrapper.getProtocolName());

Modified: qpid/proton/trunk/tests/python/proton_tests/messenger.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/python/proton_tests/messenger.py?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/tests/python/proton_tests/messenger.py (original)
+++ qpid/proton/trunk/tests/python/proton_tests/messenger.py Tue Aug 13 15:41:14 2013
@@ -233,6 +233,7 @@ class MessengerTest(Test):
 
   def reject_individual(self, msg):
     if self.server.incoming < 10:
+      self.server.work(0)
       return
     while self.server.incoming:
       t = self.server.get(msg)

Modified: qpid/proton/trunk/tests/python/proton_tests/sasl.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/python/proton_tests/sasl.py?rev=1513557&r1=1513556&r2=1513557&view=diff
==============================================================================
--- qpid/proton/trunk/tests/python/proton_tests/sasl.py (original)
+++ qpid/proton/trunk/tests/python/proton_tests/sasl.py Tue Aug 13 15:41:14 2013
@@ -167,5 +167,4 @@ class SaslTest(Test):
     while out:
       out = self.t1.output(1024)
 
-    assert self.s1.outcome == SASL.OK
-
+    assert self.s1.outcome == SASL.OK, self.s1.outcome



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org