Skip to content

Commit b3804e4

Browse files
committed
Prevented NPE if using Redirector.MODE_SERVER_INBOUND. Issue restlet#1182.
1 parent ea7cf28 commit b3804e4

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

build/tmpl/text/changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Changes log
1010
- Fixed StatusService.toStatus(Status, Request, Response) is not called. Issue #1156.
1111
- Fixed issue with case sensitivity of query parameters with JAX-RS. Issue #1163.
1212
- Fixed method value caching broken. Issue #1130.
13+
- Prevented NPE if using Redirector.MODE_SERVER_INBOUND. Issue #1182.
1314
- Enhancements
1415
- Upgraded Jetty connector to version 9.2.14. Issue #1180.
1516

modules/org.restlet/src/org/restlet/engine/component/HostRoute.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,15 @@ public float score(Request request, Response response) {
159159

160160
int resourcePortValue = request.getResourceRef().getHostPort();
161161

162-
if (resourcePortValue == -1) {
162+
if (resourcePortValue == -1
163+
&& request.getResourceRef()
164+
.getSchemeProtocol() != null) {
163165
resourcePortValue = request.getResourceRef()
164166
.getSchemeProtocol().getDefaultPort();
165167
}
166168

167-
String resourcePort = Integer.toString(resourcePortValue);
169+
String resourcePort = (resourcePortValue == -1) ? "" : Integer.toString(resourcePortValue);
170+
168171
String resourceScheme = request.getResourceRef().getScheme();
169172

170173
if (resourceScheme == null) {
@@ -190,13 +193,10 @@ public float score(Request request, Response response) {
190193
if (matches(getVirtualHost().getHostDomain(), hostDomain)
191194
&& matches(getVirtualHost().getHostPort(), hostPort)
192195
&& matches(getVirtualHost().getHostScheme(), hostScheme)
193-
&& matches(getVirtualHost().getResourceDomain(),
194-
resourceDomain)
196+
&& matches(getVirtualHost().getResourceDomain(), resourceDomain)
195197
&& matches(getVirtualHost().getResourcePort(), resourcePort)
196-
&& matches(getVirtualHost().getResourceScheme(),
197-
resourceScheme)
198-
&& matches(getVirtualHost().getServerAddress(),
199-
serverAddress)
198+
&& matches(getVirtualHost().getResourceScheme(), resourceScheme)
199+
&& matches(getVirtualHost().getServerAddress(), serverAddress)
200200
&& matches(getVirtualHost().getServerPort(), serverPort)) {
201201
result = 1F;
202202
}

0 commit comments

Comments
 (0)