diff --git a/src/uws/service/UWSService.java b/src/uws/service/UWSService.java index 01acdeb6624f516b41397054a5c0b44f2abecc64..a766e9613d82693f6497a174dc24a0682bd365cc 100644 --- a/src/uws/service/UWSService.java +++ b/src/uws/service/UWSService.java @@ -482,6 +482,8 @@ public class UWSService implements UWS { this.urlInterpreter = urlInterpreter; if (name == null && urlInterpreter != null) name = urlInterpreter.getUWSName(); + if (this.urlInterpreter != null) + this.urlInterpreter.setUwsURI(null); } /** @@ -1048,7 +1050,7 @@ public class UWSService implements UWS { JobOwner user = null; try{ - if (urlInterpreter == null){ + if (this.urlInterpreter == null){ // Initialize the URL interpreter if not already done: setUrlInterpreter(new UWSUrl(request)); @@ -1057,6 +1059,7 @@ public class UWSService implements UWS { } // Update the UWS URL interpreter: + UWSUrl urlInterpreter = new UWSUrl(this.urlInterpreter); urlInterpreter.load(request); // Identify the user: diff --git a/src/uws/service/UWSUrl.java b/src/uws/service/UWSUrl.java index 78e46cfaa7b2ec1c92f9629fea62b2926c51cd05..5b0cea96b71071192a4d6d1740781b4eba3d944b 100644 --- a/src/uws/service/UWSUrl.java +++ b/src/uws/service/UWSUrl.java @@ -17,7 +17,7 @@ package uws.service; * along with UWSLibrary. If not, see <http://www.gnu.org/licenses/>. * * Copyright 2012,2014 - UDS/Centre de Données astronomiques de Strasbourg (CDS), - * Astronomishes Rechen Institut (ARI) + * Astronomisches Rechen Institut (ARI) */ import java.io.Serializable; @@ -110,11 +110,15 @@ public class UWSUrl implements Serializable { * @see #extractBaseURI(HttpServletRequest) */ public UWSUrl(HttpServletRequest request) throws NullPointerException{ + // Extract the base URI: String uri = extractBaseURI(request); if (uri == null) throw new NullPointerException("The extracted base UWS URI is NULL!"); + else + baseURI = normalizeURI(uri); - baseURI = normalizeURI(uri); + // Load the rest of the request: + load(request); } /** @@ -503,9 +507,9 @@ public class UWSUrl implements Serializable { public final void setUwsURI(String uwsURI){ if (uwsURI == null || uwsURI.trim().length() == 0) this.uwsURI = null; - else{ + else this.uwsURI = uwsURI.trim(); - } + loadUwsURI(); updateRequestURL(); }