Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
bbc82cb6
Commit
bbc82cb6
authored
May 23, 2017
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.5.x'
parents
6c3a27da
5f3088ed
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
3 deletions
+32
-3
JettyWebServer.java
...ringframework/boot/web/embedded/jetty/JettyWebServer.java
+14
-3
JettyServletWebServerFactoryTests.java
...web/embedded/jetty/JettyServletWebServerFactoryTests.java
+18
-0
No files found.
spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyWebServer.java
View file @
bbc82cb6
...
@@ -27,6 +27,7 @@ import org.eclipse.jetty.server.NetworkConnector;
...
@@ -27,6 +27,7 @@ import org.eclipse.jetty.server.NetworkConnector;
import
org.eclipse.jetty.server.Server
;
import
org.eclipse.jetty.server.Server
;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.eclipse.jetty.util.component.AbstractLifeCycle
;
import
org.springframework.boot.web.server.PortInUseException
;
import
org.springframework.boot.web.server.PortInUseException
;
import
org.springframework.boot.web.server.WebServer
;
import
org.springframework.boot.web.server.WebServer
;
...
@@ -83,11 +84,21 @@ public class JettyWebServer implements WebServer {
...
@@ -83,11 +84,21 @@ public class JettyWebServer implements WebServer {
private
void
initialize
()
{
private
void
initialize
()
{
synchronized
(
this
.
monitor
)
{
synchronized
(
this
.
monitor
)
{
try
{
try
{
// Cache
and clear the connectors to prevent requests being handled before
// Cache
the connectors and then remove them to prevent requests being
//
the application context is ready
//
handled before the application context is ready.
this
.
connectors
=
this
.
server
.
getConnectors
();
this
.
connectors
=
this
.
server
.
getConnectors
();
this
.
server
.
setConnectors
(
null
);
this
.
server
.
addBean
(
new
AbstractLifeCycle
()
{
@Override
protected
void
doStart
()
throws
Exception
{
for
(
Connector
connector
:
JettyWebServer
.
this
.
connectors
)
{
Assert
.
state
(
connector
.
isStopped
(),
"Connector "
+
connector
+
" has been started prematurely"
);
}
JettyWebServer
.
this
.
server
.
setConnectors
(
null
);
}
});
// Start the server so that the ServletContext is available
// Start the server so that the ServletContext is available
this
.
server
.
start
();
this
.
server
.
start
();
this
.
server
.
setStopAtShutdown
(
false
);
this
.
server
.
setStopAtShutdown
(
false
);
...
...
spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java
View file @
bbc82cb6
...
@@ -36,6 +36,7 @@ import org.eclipse.jetty.server.SslConnectionFactory;
...
@@ -36,6 +36,7 @@ import org.eclipse.jetty.server.SslConnectionFactory;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.eclipse.jetty.servlet.ServletHolder
;
import
org.eclipse.jetty.servlet.ServletHolder
;
import
org.eclipse.jetty.util.thread.QueuedThreadPool
;
import
org.eclipse.jetty.util.thread.ThreadPool
;
import
org.eclipse.jetty.util.thread.ThreadPool
;
import
org.eclipse.jetty.webapp.Configuration
;
import
org.eclipse.jetty.webapp.Configuration
;
import
org.eclipse.jetty.webapp.WebAppContext
;
import
org.eclipse.jetty.webapp.WebAppContext
;
...
@@ -51,6 +52,7 @@ import org.springframework.boot.web.servlet.server.AbstractServletWebServerFacto
...
@@ -51,6 +52,7 @@ import org.springframework.boot.web.servlet.server.AbstractServletWebServerFacto
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpHeaders
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
hamcrest
.
CoreMatchers
.
instanceOf
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
Mockito
.
inOrder
;
import
static
org
.
mockito
.
Mockito
.
inOrder
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
mock
;
...
@@ -277,6 +279,22 @@ public class JettyServletWebServerFactoryTests
...
@@ -277,6 +279,22 @@ public class JettyServletWebServerFactoryTests
.
isSameAs
(
threadPool
);
.
isSameAs
(
threadPool
);
}
}
@Test
public
void
startFailsWhenThreadPoolIsTooSmall
()
throws
Exception
{
JettyServletWebServerFactory
factory
=
getFactory
();
factory
.
addServerCustomizers
(
new
JettyServerCustomizer
()
{
@Override
public
void
customize
(
Server
server
)
{
QueuedThreadPool
threadPool
=
server
.
getBean
(
QueuedThreadPool
.
class
);
threadPool
.
setMaxThreads
(
2
);
threadPool
.
setMinThreads
(
2
);
}
});
this
.
thrown
.
expectCause
(
instanceOf
(
IllegalStateException
.
class
));
factory
.
getWebServer
().
start
();
}
@Override
@Override
@SuppressWarnings
(
"serial"
)
@SuppressWarnings
(
"serial"
)
// Workaround for Jetty issue - https://bugs.eclipse.org/bugs/show_bug.cgi?id=470646
// Workaround for Jetty issue - https://bugs.eclipse.org/bugs/show_bug.cgi?id=470646
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment