Skip to content

Commit fab4a3b

Browse files
committed
jetty 9.4.0.v20161208 fix #613
1 parent 681f3cb commit fab4a3b

6 files changed

Lines changed: 17 additions & 61 deletions

File tree

coverage-report/src/test/java/org/jooby/BufferSizeFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class BufferSizeFeature extends ServerFeature {
2828
}
2929
Result rsp = result;
3030
len.ifPresent(l -> rsp.header("Content-Length", l));
31-
chunked.ifPresent(c -> rsp.header("Transfer-Encoding", "Chunked"));
31+
chunked.ifPresent(c -> rsp.header("Transfer-Encoding", "chunked"));
3232
return rsp;
3333
});
3434
}

jooby-executor/src/main/java/org/jooby/exec/Exec.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.util.List;
2828
import java.util.Map;
2929
import java.util.Map.Entry;
30-
import java.util.Optional;
3130
import java.util.Set;
3231
import java.util.concurrent.Executor;
3332
import java.util.concurrent.ExecutorService;

jooby-jetty/pom.xml

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -116,55 +116,4 @@
116116

117117
</dependencies>
118118

119-
<profiles>
120-
<profile>
121-
<id>linux</id>
122-
<activation>
123-
<os>
124-
<family>linux</family>
125-
</os>
126-
</activation>
127-
<dependencies>
128-
<dependency>
129-
<groupId>io.netty</groupId>
130-
<artifactId>netty-tcnative-boringssl-static</artifactId>
131-
<version>1.1.33.Fork19</version>
132-
<classifier>linux-x86_64</classifier>
133-
</dependency>
134-
</dependencies>
135-
</profile>
136-
<profile>
137-
<id>windows_x86</id>
138-
<activation>
139-
<os>
140-
<family>windows</family>
141-
</os>
142-
</activation>
143-
<dependencies>
144-
<dependency>
145-
<groupId>io.netty</groupId>
146-
<artifactId>netty-tcnative-boringssl-static</artifactId>
147-
<version>1.1.33.Fork19</version>
148-
<classifier>windows-x86_64</classifier>
149-
</dependency>
150-
</dependencies>
151-
</profile>
152-
<profile>
153-
<id>mac_x86_64</id>
154-
<activation>
155-
<os>
156-
<family>mac</family>
157-
</os>
158-
</activation>
159-
<dependencies>
160-
<dependency>
161-
<groupId>io.netty</groupId>
162-
<artifactId>netty-tcnative-boringssl-static</artifactId>
163-
<version>1.1.33.Fork19</version>
164-
<classifier>osx-x86_64</classifier>
165-
</dependency>
166-
</dependencies>
167-
</profile>
168-
</profiles>
169-
170119
</project>

jooby-jetty/src/main/java/org/jooby/internal/jetty/JettyResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ public void failed(final Throwable cause) {
9595
public void end() {
9696
if (endRequest) {
9797
super.end();
98+
nreq = null;
9899
}
99-
nreq = null;
100100
}
101101

102102
@Override

jooby-jetty/src/main/java/org/jooby/internal/jetty/JettyServer.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.eclipse.jetty.server.ServerConnector;
4343
import org.eclipse.jetty.server.SslConnectionFactory;
4444
import org.eclipse.jetty.server.handler.ContextHandler;
45+
import org.eclipse.jetty.util.DecoratedObjectFactory;
4546
import org.eclipse.jetty.util.ssl.SslContextFactory;
4647
import org.eclipse.jetty.util.thread.QueuedThreadPool;
4748
import org.eclipse.jetty.websocket.api.WebSocketBehavior;
@@ -110,16 +111,19 @@ private Server server(final HttpHandler handler, final Config conf,
110111

111112
server.addConnector(http);
112113

114+
ContextHandler sch = new ContextHandler();
115+
sch.setAttribute(DecoratedObjectFactory.ATTR, new DecoratedObjectFactory());
116+
113117
WebSocketPolicy wsConfig = conf(new WebSocketPolicy(WebSocketBehavior.SERVER),
114118
conf.getConfig("jetty.ws"), "jetty.ws");
115-
WebSocketServerFactory webSocketServerFactory = new WebSocketServerFactory(wsConfig);
119+
WebSocketServerFactory webSocketServerFactory = new WebSocketServerFactory(
120+
sch.getServletContext(), wsConfig);
116121
webSocketServerFactory.setCreator((req, rsp) -> {
117122
JettyWebSocket ws = new JettyWebSocket();
118123
req.getHttpServletRequest().setAttribute(JettyWebSocket.class.getName(), ws);
119124
return ws;
120125
});
121126

122-
ContextHandler sch = new ContextHandler();
123127
// always '/' context path is internally handle by jooby
124128
sch.setContextPath("/");
125129
sch.setHandler(new JettyHandler(handler, webSocketServerFactory, conf
@@ -197,8 +201,7 @@ public void stop() throws Exception {
197201
}
198202

199203
@Override
200-
public Optional<Executor> executor()
201-
{
204+
public Optional<Executor> executor() {
202205
return Optional.ofNullable(server.getThreadPool());
203206
}
204207

jooby-jetty/src/test/java/org/jooby/internal/jetty/JettyServerTest.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jooby.internal.jetty;
22

3+
import static org.easymock.EasyMock.eq;
34
import static org.easymock.EasyMock.expect;
45
import static org.easymock.EasyMock.expectLastCall;
56
import static org.easymock.EasyMock.isA;
@@ -9,13 +10,15 @@
910
import java.util.Map;
1011

1112
import javax.inject.Provider;
13+
import javax.servlet.ServletContext;
1214

1315
import org.eclipse.jetty.server.ConnectionFactory;
1416
import org.eclipse.jetty.server.HttpConfiguration;
1517
import org.eclipse.jetty.server.HttpConnectionFactory;
1618
import org.eclipse.jetty.server.Server;
1719
import org.eclipse.jetty.server.ServerConnector;
1820
import org.eclipse.jetty.server.handler.ContextHandler;
21+
import org.eclipse.jetty.util.DecoratedObjectFactory;
1922
import org.eclipse.jetty.util.thread.QueuedThreadPool;
2023
import org.eclipse.jetty.util.thread.ThreadPool;
2124
import org.eclipse.jetty.websocket.api.WebSocketBehavior;
@@ -104,6 +107,8 @@ public class JettyServerTest {
104107
.build();
105108
ctx.setContextPath("/");
106109
ctx.setHandler(isA(JettyHandler.class));
110+
ctx.setAttribute(eq(DecoratedObjectFactory.ATTR), isA(DecoratedObjectFactory.class));
111+
expect(ctx.getServletContext()).andReturn(unit.get(ContextHandler.Context.class));
107112

108113
server.setStopAtShutdown(false);
109114
server.setHandler(ctx);
@@ -173,8 +178,8 @@ public class JettyServerTest {
173178

174179
private Block wsFactory = unit -> {
175180
WebSocketServerFactory factory = unit.constructor(WebSocketServerFactory.class)
176-
.args(WebSocketPolicy.class)
177-
.build(unit.get(WebSocketPolicy.class));
181+
.args(ServletContext.class, WebSocketPolicy.class)
182+
.build(unit.get(ContextHandler.Context.class), unit.get(WebSocketPolicy.class));
178183

179184
factory.setCreator(isA(WebSocketCreator.class));
180185

@@ -187,7 +192,7 @@ public class JettyServerTest {
187192
@Test
188193
public void startStopServer() throws Exception {
189194

190-
new MockUnit(HttpHandler.class, Provider.class)
195+
new MockUnit(HttpHandler.class, Provider.class, ContextHandler.Context.class)
191196
.expect(pool)
192197
.expect(server)
193198
.expect(httpConf)

0 commit comments

Comments
 (0)