Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java')
-rw-r--r--jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java b/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
index a6527856a7..b77e9eb6af 100644
--- a/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
+++ b/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
@@ -154,8 +154,9 @@ public class StandardSession implements ISession, Parser.Listener, Handler<Stand
int streamId = streamIds.getAndAdd(2);
SynStreamFrame synStream = new SynStreamFrame(version, synInfo.getFlags(), streamId, associatedStreamId, synInfo.getPriority(), synInfo.getHeaders());
IStream stream = createStream(synStream, listener, true);
- control(stream, synStream, timeout, unit, handler, stream);
+ generateAndEnqueueControlFrame(stream, synStream, timeout, unit, handler, stream);
}
+ flush();
}
@Override
@@ -725,6 +726,12 @@ public class StandardSession implements ISession, Parser.Listener, Handler<Stand
@Override
public <C> void control(IStream stream, ControlFrame frame, long timeout, TimeUnit unit, Handler<C> handler, C context)
{
+ generateAndEnqueueControlFrame(stream,frame,timeout,unit,handler,context);
+ flush();
+ }
+
+ private <C> void generateAndEnqueueControlFrame(IStream stream, ControlFrame frame, long timeout, TimeUnit unit, Handler<C> handler, C context)
+ {
try
{
if (stream != null)
@@ -751,8 +758,6 @@ public class StandardSession implements ISession, Parser.Listener, Handler<Stand
else
append(frameBytes);
}
-
- flush();
}
catch (Throwable x)
{

Back to the top