diff --git a/.gitignore b/.gitignore
index 48510445ec153093bd764bb7000913be4c068b39..c84448e5b12c639424b7cb9f121fe45b127cca8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@ src/generated
 gradle.properties
 /out
 /build
-InstanceSettings.xmldependencies.txt
+dependencies.txt
 /webapps
 /bin/
 .classpath
diff --git a/src/main/java/org/nrg/dcm/id/RoutedStudyDicomProjectIdentifier.java b/src/main/java/org/nrg/dcm/id/RoutedStudyDicomProjectIdentifier.java
index 50bd47cfde866988f5996f748ae08ad8521dc2b2..60e00a80970901fffabcc977cef8c44616242a96 100644
--- a/src/main/java/org/nrg/dcm/id/RoutedStudyDicomProjectIdentifier.java
+++ b/src/main/java/org/nrg/dcm/id/RoutedStudyDicomProjectIdentifier.java
@@ -15,7 +15,7 @@ import java.util.SortedSet;
 
 import javax.inject.Inject;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.dcm4che2.data.DicomObject;
 import org.dcm4che2.data.Tag;
 import org.nrg.xdat.om.XnatProjectdata;
diff --git a/src/main/java/org/nrg/dcm/id/ScriptedSessionAssignmentExtractor.java b/src/main/java/org/nrg/dcm/id/ScriptedSessionAssignmentExtractor.java
index 6f54c07cb4ba0210425df021f3f0df84c0440bf4..47188bf1ee4c5f86ee5ec6788da2e96be416cbae 100644
--- a/src/main/java/org/nrg/dcm/id/ScriptedSessionAssignmentExtractor.java
+++ b/src/main/java/org/nrg/dcm/id/ScriptedSessionAssignmentExtractor.java
@@ -1,6 +1,6 @@
 package org.nrg.dcm.id;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.dcm4che2.data.DicomObject;
 import org.nrg.automation.entities.Script;
 import org.nrg.automation.services.ScriptRunnerService;
diff --git a/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java b/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
index 61640916b8871943146daa3d1afc49953ee54f6c..c3d6e8fc6c0ca0b4d57ead33ea8aec964ffde91e 100644
--- a/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
+++ b/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
@@ -11,7 +11,7 @@
 
 package org.nrg.pipeline;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.pipeline.client.XNATPipelineLauncher;
diff --git a/src/main/java/org/nrg/xapi/model/users/User.java b/src/main/java/org/nrg/xapi/model/users/User.java
index ae714c01c28daa5d6a1fbd542211510bcc597af5..862323e04ba8fb73dbd31cacdddd77fd5ffb6273 100644
--- a/src/main/java/org/nrg/xapi/model/users/User.java
+++ b/src/main/java/org/nrg/xapi/model/users/User.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.XdatUser;
 import org.nrg.xdat.om.base.auto.AutoXdatUser;
 import org.nrg.xdat.security.XDATUser;
diff --git a/src/main/java/org/nrg/xapi/rest/dicomscp/DicomSCPApi.java b/src/main/java/org/nrg/xapi/rest/dicomscp/DicomSCPApi.java
index 60c151817753a7403dbae71850d3a3025110de2e..d005355000c4a03b326eda906bec6e66930817ed 100644
--- a/src/main/java/org/nrg/xapi/rest/dicomscp/DicomSCPApi.java
+++ b/src/main/java/org/nrg/xapi/rest/dicomscp/DicomSCPApi.java
@@ -3,6 +3,7 @@ package org.nrg.xapi.rest.dicomscp;
 import io.swagger.annotations.*;
 import org.nrg.dcm.DicomSCPManager;
 import org.nrg.dcm.preferences.DicomSCPInstance;
+import org.nrg.framework.annotations.XapiRestController;
 import org.nrg.framework.exceptions.NrgServiceException;
 import org.nrg.xapi.rest.NotFoundException;
 import org.nrg.xdat.rest.AbstractXnatRestApi;
@@ -15,10 +16,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.inject.Inject;
 import java.util.List;
 
-// @XnatRestlet({"/services/dicomscp", "/services/dicomscp/instance/{SCP_ID}", "/services/dicomscp/instance/{SCP_ID}/{ACTION}", "/services/dicomscp/{ACTION}"})
-
 @Api(description = "XNAT DICOM SCP management API")
-@RestController
+@XapiRestController
 @RequestMapping(value = "/dicomscp")
 public class DicomSCPApi extends AbstractXnatRestApi {
     private static final Logger _log = LoggerFactory.getLogger(DicomSCPApi.class);
diff --git a/src/main/java/org/nrg/xapi/rest/theme/ThemeApi.java b/src/main/java/org/nrg/xapi/rest/theme/ThemeApi.java
index 480d3f4730317449b5d069cc79041bc3c3329332..2abf2d607eb0254d12e5bd144ff808cdc05102a6 100644
--- a/src/main/java/org/nrg/xapi/rest/theme/ThemeApi.java
+++ b/src/main/java/org/nrg/xapi/rest/theme/ThemeApi.java
@@ -14,6 +14,7 @@ package org.nrg.xapi.rest.theme;
 
 import io.swagger.annotations.*;
 import org.apache.commons.io.FileUtils;
+import org.nrg.framework.annotations.XapiRestController;
 import org.nrg.xapi.rest.NotFoundException;
 import org.nrg.xdat.security.XDATUser;
 import org.nrg.xft.security.UserI;
@@ -34,7 +35,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Api(description = "XNAT Theme Management API")
-@RestController
+@XapiRestController
 @RequestMapping(value = "/theme")
 public class ThemeApi {
     private static final Logger _log = LoggerFactory.getLogger(ThemeApi.class);
diff --git a/src/main/java/org/nrg/xapi/rest/users/UsersApi.java b/src/main/java/org/nrg/xapi/rest/users/UsersApi.java
index 83adf8bec14a3763714b4df255e46c030cd60d9d..80691aef62ff33a548583777bc9c3204dbb4a1b4 100644
--- a/src/main/java/org/nrg/xapi/rest/users/UsersApi.java
+++ b/src/main/java/org/nrg/xapi/rest/users/UsersApi.java
@@ -2,6 +2,7 @@ package org.nrg.xapi.rest.users;
 
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
+import org.nrg.framework.annotations.XapiRestController;
 import org.nrg.xapi.model.users.User;
 import org.nrg.xapi.rest.NotFoundException;
 import org.nrg.xdat.rest.AbstractXnatRestApi;
@@ -21,7 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Api(description = "The XNAT POC User Management API")
-@RestController
+@XapiRestController
 @RequestMapping(value = "/users")
 public class UsersApi extends AbstractXnatRestApi {
     private static final Logger _log = LoggerFactory.getLogger(UsersApi.class);
@@ -169,7 +170,7 @@ public class UsersApi extends AbstractXnatRestApi {
     }
 
     @ApiOperation(value = "Sets the user's verified state.", notes = "Sets the verified state of the user with the specified user ID to the value of the flag parameter.", response = Boolean.class)
-    @ApiResponses({@ApiResponse(code = 200, message = "User verified status successfully set."), @ApiResponse(code = 401, message = "Must be authenticated to access the XNAT REST API."), @ApiResponse(code = 403, message = "Not authorized to verify or unverify this user."), @ApiResponse(code = 404, message = "User not found."), @ApiResponse(code = 500, message = "Unexpected error")})
+    @ApiResponses({@ApiResponse(code = 200, message = "User verified status successfully set."), @ApiResponse(code = 401, message = "Must be authenticated to access the XNAT REST API."), @ApiResponse(code = 403, message = "Not authorized to verify or un-verify this user."), @ApiResponse(code = 404, message = "User not found."), @ApiResponse(code = 500, message = "Unexpected error")})
     @RequestMapping(value = {"/{id}/verified/{flag}"}, produces = {"application/json"}, method = {RequestMethod.PUT})
     public ResponseEntity<Boolean> usersIdVerifiedFlagPut(@ApiParam(value = "ID of the user to fetch", required = true) @PathVariable("id") String id, @ApiParam(value = "The value to set for the verified status.", required = true) @PathVariable("flag") Boolean flag) {
         HttpStatus status = isPermitted(id);
diff --git a/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java b/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
index b48a19210c290f1a6aa9806e25f47773bafffaad..27f215669a8d5bceeacac172fa85880f5e0578a9 100644
--- a/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
+++ b/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
@@ -2,7 +2,7 @@ package org.nrg.xnat.actions.postArchive;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.XnatImagesessiondata;
 import org.nrg.xdat.services.StudyRoutingService;
diff --git a/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java b/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java
index f1cfb0c0b6d09fd6e197383bd36db89c6fdb7691..ffa912bfcf1ec1ec0c0670886e663a05ef1d9f26 100644
--- a/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java
+++ b/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java
@@ -18,8 +18,8 @@ import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Element;
 import net.sf.ehcache.config.CacheConfiguration;
 import net.sf.ehcache.config.PersistenceConfiguration;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
 import org.dcm4che2.data.*;
 import org.dcm4che2.io.DicomInputStream;
 import org.dcm4che2.io.DicomOutputStream;
diff --git a/src/main/java/org/nrg/xnat/archive/PrearcSessionArchiver.java b/src/main/java/org/nrg/xnat/archive/PrearcSessionArchiver.java
index 33f1df8217dd55fdd8757bd8de2550859a554a4e..f218a6ddc483ad30defc3a6b66161828e1e1cadd 100644
--- a/src/main/java/org/nrg/xnat/archive/PrearcSessionArchiver.java
+++ b/src/main/java/org/nrg/xnat/archive/PrearcSessionArchiver.java
@@ -12,8 +12,8 @@ package org.nrg.xnat.archive;
 
 import com.google.common.collect.Lists;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.BooleanUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
 import org.nrg.dicomtools.filters.DicomFilterService;
diff --git a/src/main/java/org/nrg/xnat/archive/PrearcSessionValidator.java b/src/main/java/org/nrg/xnat/archive/PrearcSessionValidator.java
index f3518c8310ef334fe1043a2c460b3a40ee8f2abb..24ad218fd633f541ef98833a7b3614136d00f295 100644
--- a/src/main/java/org/nrg/xnat/archive/PrearcSessionValidator.java
+++ b/src/main/java/org/nrg/xnat/archive/PrearcSessionValidator.java
@@ -15,7 +15,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
 import org.nrg.xdat.model.XnatImagescandataI;
diff --git a/src/main/java/org/nrg/xnat/configuration/WebConfig.java b/src/main/java/org/nrg/xnat/configuration/WebConfig.java
index d2e4900f9fbd4e5d5f09df57334ebeae401cd398..297f294b6788fef581d7ed4614a821864a1a298c 100644
--- a/src/main/java/org/nrg/xnat/configuration/WebConfig.java
+++ b/src/main/java/org/nrg/xnat/configuration/WebConfig.java
@@ -1,5 +1,6 @@
 package org.nrg.xnat.configuration;
 
+import org.nrg.framework.annotations.XapiRestController;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.MessageSource;
@@ -29,10 +30,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 public class WebConfig extends WebMvcConfigurerAdapter {
     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
-        registry.addResourceHandler("**/swagger-ui.html")
-                .addResourceLocations("classpath:/META-INF/resources/");
-        registry.addResourceHandler("/webjars/**")
-                .addResourceLocations("classpath:/META-INF/resources/webjars/");
+        registry.addResourceHandler("**/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
     }
 
     @Bean
@@ -43,10 +42,10 @@ public class WebConfig extends WebMvcConfigurerAdapter {
     @Bean
     public ViewResolver viewResolver() {
         return new InternalResourceViewResolver() {{
-                setViewClass(JstlView.class);
-                setPrefix("/WEB-INF/views/");
-                setSuffix(".jsp");
-            }};
+            setViewClass(JstlView.class);
+            setPrefix("/WEB-INF/views/");
+            setSuffix(".jsp");
+        }};
     }
 
     @Bean
@@ -59,23 +58,11 @@ public class WebConfig extends WebMvcConfigurerAdapter {
     @Bean
     public Docket api() {
         _log.debug("Initializing the Swagger Docket object");
-        return new Docket(DocumentationType.SWAGGER_2)
-                .select()
-                .apis(RequestHandlerSelectors.basePackage("org.nrg.xapi.rest"))
-                .paths(PathSelectors.any())
-                .build()
-                .apiInfo(apiInfo());
+        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withClassAnnotation(XapiRestController.class)).paths(PathSelectors.any()).build().apiInfo(apiInfo());
     }
 
     private ApiInfo apiInfo() {
-        return new ApiInfo(
-                "XNAT REST API",
-                "The XNAT REST API (XAPI) functions provide remote programmatic access to XNAT internal functions.",
-                "1.7.0",
-                "http://www.xnat.org",
-                "info@xnat.org",
-                "Simplified 2-Clause BSD",
-                "API license URL");
+        return new ApiInfo("XNAT REST API", "The XNAT REST API (XAPI) functions provide access to XNAT internal functions for remote clients.", "1.7.0", "http://www.xnat.org", "info@xnat.org", "Simplified 2-Clause BSD", "API license URL");
     }
 
     private static final Logger _log = LoggerFactory.getLogger(WebConfig.class);
diff --git a/src/main/java/org/nrg/xnat/event/listeners/AutomatedScriptHandler.java b/src/main/java/org/nrg/xnat/event/listeners/AutomatedScriptHandler.java
index 2d9a5b9c63ef15d74ef8dffa8345969f080bdfc3..3102d310ef22beeafedc15bad95453788600ab02 100755
--- a/src/main/java/org/nrg/xnat/event/listeners/AutomatedScriptHandler.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/AutomatedScriptHandler.java
@@ -6,7 +6,7 @@ import reactor.bus.Event;
 import reactor.bus.EventBus;
 import reactor.fn.Consumer;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.automation.entities.Script;
 import org.nrg.automation.services.ScriptRunnerService;
 import org.nrg.framework.constants.Scope;
diff --git a/src/main/java/org/nrg/xnat/event/listeners/PipelineEmailHandlerAbst.java b/src/main/java/org/nrg/xnat/event/listeners/PipelineEmailHandlerAbst.java
index f62842042a01eb3421d14f38cac51f6da980fc1f..2a6ef18fc1091e54c4eb415de4f7a5209547ec31 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/PipelineEmailHandlerAbst.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/PipelineEmailHandlerAbst.java
@@ -3,8 +3,8 @@ package org.nrg.xnat.event.listeners;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.xmlbeans.XmlException;
 import org.nrg.pipeline.xmlbeans.AllResolvedStepsDocument;
 import org.nrg.pipeline.xmlbeans.ParameterData;
diff --git a/src/main/java/org/nrg/xnat/event/listeners/WorkflowStatusEventHandlerAbst.java b/src/main/java/org/nrg/xnat/event/listeners/WorkflowStatusEventHandlerAbst.java
index f5860b8c1ba988d30ed413afc085e1e34b7bd004..fddc98c029f19da14506166c064b260c0ce4f8e7 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/WorkflowStatusEventHandlerAbst.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/WorkflowStatusEventHandlerAbst.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.event.listeners;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.xft.event.WorkflowStatusEvent;
 import org.nrg.xft.event.persist.PersistentWorkflowUtils;
diff --git a/src/main/java/org/nrg/xnat/helpers/PrearcImporterHelper.java b/src/main/java/org/nrg/xnat/helpers/PrearcImporterHelper.java
index 8c3db38b7abcb181705acbc36c3225c10f0a48a2..90ffa81b287bfdef8c9f3f2ba742b078b54c00c3 100644
--- a/src/main/java/org/nrg/xnat/helpers/PrearcImporterHelper.java
+++ b/src/main/java/org/nrg/xnat/helpers/PrearcImporterHelper.java
@@ -16,7 +16,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/helpers/dicom/DicomHeaderDump.java b/src/main/java/org/nrg/xnat/helpers/dicom/DicomHeaderDump.java
index 4feb8ece642ab5c3e1a8370ff5646c8eb732e75a..87f9ef933299498749c66ed9dd574249cc6c4cd6 100644
--- a/src/main/java/org/nrg/xnat/helpers/dicom/DicomHeaderDump.java
+++ b/src/main/java/org/nrg/xnat/helpers/dicom/DicomHeaderDump.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.helpers.dicom;
 
 import com.google.common.collect.ImmutableMap;
-import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.dcm4che2.data.DicomElement;
 import org.dcm4che2.data.DicomObject;
 import org.dcm4che2.data.DicomObjectToStringParam;
@@ -130,7 +130,7 @@ public final class DicomHeaderDump {
     }
 
     public static String escapeHTML(String o){
-        return (o==null)?null: StringEscapeUtils.escapeHtml(o);
+        return (o==null)?null: StringEscapeUtils.escapeHtml4(o);
     }
 
     /**
diff --git a/src/main/java/org/nrg/xnat/helpers/merge/MergeCatCatalog.java b/src/main/java/org/nrg/xnat/helpers/merge/MergeCatCatalog.java
index dbc08e44cdb437f13dd2c30a239d47a32bde1af8..f65223de829a14aa6c2e4b56f8c572fc52cebaf8 100644
--- a/src/main/java/org/nrg/xnat/helpers/merge/MergeCatCatalog.java
+++ b/src/main/java/org/nrg/xnat/helpers/merge/MergeCatCatalog.java
@@ -14,7 +14,7 @@
  */
 package org.nrg.xnat.helpers.merge;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.bean.CatEntryBean;
 import org.nrg.xdat.model.CatCatalogI;
 import org.nrg.xdat.model.CatDcmentryI;
diff --git a/src/main/java/org/nrg/xnat/helpers/merge/MergeUtils.java b/src/main/java/org/nrg/xnat/helpers/merge/MergeUtils.java
index 4e99832ce1f406d17fc3919cf4a63fec4177eb3b..feeaf09657af247ff1fe1be9d41d0d63d459824c 100644
--- a/src/main/java/org/nrg/xnat/helpers/merge/MergeUtils.java
+++ b/src/main/java/org/nrg/xnat/helpers/merge/MergeUtils.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.helpers.merge;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.model.XnatImagescandataI;
 import org.nrg.xdat.model.XnatResourceI;
diff --git a/src/main/java/org/nrg/xnat/helpers/merge/SessionOverwriteCheck.java b/src/main/java/org/nrg/xnat/helpers/merge/SessionOverwriteCheck.java
index fc67bf8f6ede84508bba047457b6ca6b8bc072b1..d6db6de57a35cc31ae5de536557e7589139d1e3c 100644
--- a/src/main/java/org/nrg/xnat/helpers/merge/SessionOverwriteCheck.java
+++ b/src/main/java/org/nrg/xnat/helpers/merge/SessionOverwriteCheck.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.merge;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.bean.CatCatalogBean;
 import org.nrg.xdat.model.*;
 import org.nrg.xft.event.EventMetaI;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/DatabaseSession.java b/src/main/java/org/nrg/xnat/helpers/prearchive/DatabaseSession.java
index b6946e6fa64def310f72fc501b5e8696f7d2a19f..c0ce5946557e792f6068d5640afd7ded78012c50 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/DatabaseSession.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/DatabaseSession.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/FileSystemSessionTrawler.java b/src/main/java/org/nrg/xnat/helpers/prearchive/FileSystemSessionTrawler.java
index 7bb8f40e34a7d2719fc55a7ac03389056658cadb..b79ef8e666c85a191cf0f3975b8d570b3cff4a07 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/FileSystemSessionTrawler.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/FileSystemSessionTrawler.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.slf4j.Logger;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
index 29c48d481823db1c27a021daddde0bab95e19cc0..859f28587350d4c2550d58e74244d2650e2cf44a 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
@@ -14,7 +14,7 @@ import com.fasterxml.jackson.core.JsonFactory;
 import com.google.common.base.Strings;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.automation.entities.Script;
 import org.nrg.automation.services.ScriptService;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcTableBuilder.java b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcTableBuilder.java
index 0acdc79989eb8ab5ceebeda68eb29fd65651ba32..816eb750e55c06485daffba625fc28f990aff442 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcTableBuilder.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcTableBuilder.java
@@ -14,7 +14,7 @@
  */
 package org.nrg.xnat.helpers.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.framework.constants.PrearchiveCode;
 import org.nrg.xdat.bean.XnatImagesessiondataBean;
 import org.nrg.xdat.bean.reader.XDATXMLReader;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUriParserUtils.java b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUriParserUtils.java
index 616af5c6958199912542203eb35055e84f59e543..e83ae009f5e39ca4f03ea5edaadf17436ff2bf49 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUriParserUtils.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUriParserUtils.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.restlet.data.CharacterSet;
 import org.restlet.data.Form;
 import org.restlet.data.Reference;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUtils.java b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUtils.java
index 37aadd0b5fd933c1c51d830ff5c72a4a19eb6b92..61a3cf53f572f187e54adeefd51a2c1677aea71e 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUtils.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcUtils.java
@@ -13,7 +13,7 @@ package org.nrg.xnat.helpers.prearchive;
 import com.google.common.collect.Lists;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.filefilter.DirectoryFileFilter;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.config.entities.Configuration;
 import org.nrg.framework.constants.Scope;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/SessionXMLRebuilder.java b/src/main/java/org/nrg/xnat/helpers/prearchive/SessionXMLRebuilder.java
index e27d1bf64e12f1cbe5c1b02864d2ea977d9ec03d..88c0f5ecee8bf211c2c9f4c522e5a6fd688b184d 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/SessionXMLRebuilder.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/SessionXMLRebuilder.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xft.exception.InvalidPermissionException;
 import org.nrg.xft.security.UserI;
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/handlers/PrearchiveMoveHandler.java b/src/main/java/org/nrg/xnat/helpers/prearchive/handlers/PrearchiveMoveHandler.java
index 4241f86813b1e6b48d4b60b12e8a708e55eb62ee..95dfd8576f009d063bb0048ce3dad5cf7359533d 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/handlers/PrearchiveMoveHandler.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/handlers/PrearchiveMoveHandler.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.helpers.prearchive.handlers;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xdat.bean.XnatImagesessiondataBean;
 import org.nrg.xdat.bean.XnatPetmrsessiondataBean;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectAssessResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectAssessResourceImpl.java
index d3daa42494c3c14d3624b5b02c45d32f2407aa30..d16844cfcc8731d9536009edb837a020f06bbb77 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectAssessResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectAssessResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatImageassessordata;
 import org.nrg.xdat.om.XnatImagesessiondata;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectExptResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectExptResourceImpl.java
index a760d1830eaf814f560cd1fae98b07c0e398c1bc..1a75ead4e33010ef8125415f428608aebbfc932d 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectExptResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectExptResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.base.BaseElement;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.*;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectProjResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectProjResourceImpl.java
index 84c0932e499a778ff56ad8f766d5136dc414bac6..2eae3f914ff76e161ee60d1184747fd75ee50dcd 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectProjResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectProjResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.base.BaseElement;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectReconResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectReconResourceImpl.java
index 6f9b126a9eb8f653c0148ac6a88f98f5b923d627..542c94bc7b7017fa62df0e03a5cd7fb3cc64e270 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectReconResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectReconResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatImagesessiondata;
 import org.nrg.xdat.om.XnatProjectdata;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectScanResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectScanResourceImpl.java
index 6082b53a369e03de54b84af875bab8f39e5abd61..e2ed3d0882e8cd46240bd30a057501205de355a5 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectScanResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectScanResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatImagescandata;
 import org.nrg.xdat.om.XnatImagesessiondata;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectSubjResourceImpl.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectSubjResourceImpl.java
index 3d0eea14615c150b1aa02b5d719312a3793b6fc2..8b7886bd5cf2400e75862491601770103385ed12 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectSubjResourceImpl.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/DirectSubjResourceImpl.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.resource.direct;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.om.XnatResource;
diff --git a/src/main/java/org/nrg/xnat/helpers/resource/direct/ResourceModifierA.java b/src/main/java/org/nrg/xnat/helpers/resource/direct/ResourceModifierA.java
index 3f1bb9b7b4b2d40b191eb119c51f3e16fcfee1e5..d54d43d94494958744542b9c96ed3aadc0efa2e2 100644
--- a/src/main/java/org/nrg/xnat/helpers/resource/direct/ResourceModifierA.java
+++ b/src/main/java/org/nrg/xnat/helpers/resource/direct/ResourceModifierA.java
@@ -15,7 +15,7 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.bean.CatCatalogBean;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatAbstractresource;
diff --git a/src/main/java/org/nrg/xnat/helpers/transactions/TransactionUtils.java b/src/main/java/org/nrg/xnat/helpers/transactions/TransactionUtils.java
index 7f5a2bde6914384e9f505468c43fc820130bc071..616d1f895c548f54e4a8f9a98d7c0ed29f6fb58c 100644
--- a/src/main/java/org/nrg/xnat/helpers/transactions/TransactionUtils.java
+++ b/src/main/java/org/nrg/xnat/helpers/transactions/TransactionUtils.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.transactions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class TransactionUtils {
 	
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptAssessorURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptAssessorURI.java
index ef90573778c78320e4143b01fa73767ee48309ca..65b611518f7c41f2109a7b719c9ee765b79ba8f1 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptAssessorURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptAssessorURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatImageassessordata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptReconURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptReconURI.java
index c480c101308e161464ffdb8038a0022317d2a53d..71c47857d16ecaa6775cf6704746a7338e4043ef 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptReconURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptReconURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatImagesessiondata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptScanURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptScanURI.java
index 3343d18a39843e2e14bfc8826f3cabb91f4238fe..7a93fb0c96488cf2cf082a55ae53c01f88586a23 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptScanURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptScanURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatImagescandata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptURI.java
index a28d8a0c33c66135906eb0a17f975c79c0587097..8917e48ae7a964ff0368cae7402f6de7a07f9f3e 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesExptURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatProjectdata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssExptURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssExptURI.java
index 7d2f0fac0c1975e5ac66231cd6a6bbbd0a916957..9360bf385368c596affa8ead018f4957a286af21 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssExptURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssExptURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatImageassessordata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssReconURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssReconURI.java
index 79f8b155d6d73d25c3ac09026adca1b38161e763..f7872ff2597043ca831504793b32a3babc08c7b7 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssReconURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssReconURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatReconstructedimagedata;
 import org.nrg.xnat.helpers.uri.URIManager;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssScanURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssScanURI.java
index e0212e567fadc357d7990bb1a9c2780dc7e4ede2..7f705940c6e68ac50db0fbdd8a7a4365b2bc7f98 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssScanURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjAssScanURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatImagescandata;
 import org.nrg.xdat.om.XnatImagesessiondata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjExptURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjExptURI.java
index b4568dd8f2a0ad67c4d28a9598e65f66eed302a0..383a62dabb36ae0379928af0b593df307863c606 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjExptURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjExptURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatProjectdata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjURI.java
index 60d16d66f11e576ee7eff585d5363d084a7ee7c0..0b3c01368aaf0e489a1fd9326fb1a8c3bcf512ca 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjSubjURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.om.XnatSubjectdata;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjURI.java
index b6e0f147de067c40eaa76a1174459306009c7995..43aa1242cb2a81ef2ec2b8ccb8faa41337bcff42 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesProjURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xnat.helpers.uri.URIManager;
diff --git a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesSubjURI.java b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesSubjURI.java
index dd2d1c0a1219026636019f1385bc9889acc59a52..7214ff9c5746e383909a7e18fc4febaa2af97373 100644
--- a/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesSubjURI.java
+++ b/src/main/java/org/nrg/xnat/helpers/uri/archive/impl/ResourcesSubjURI.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.helpers.uri.archive.impl;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.model.XnatAbstractresourceI;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.om.XnatSubjectdata;
diff --git a/src/main/java/org/nrg/xnat/itemBuilders/FileHistoryBuilderAbst.java b/src/main/java/org/nrg/xnat/itemBuilders/FileHistoryBuilderAbst.java
index 19f3846c56631bfc73e8211461d3d59013fbe582..f097286f7dd852d9d4364bcc214f64fe8951cc0d 100644
--- a/src/main/java/org/nrg/xnat/itemBuilders/FileHistoryBuilderAbst.java
+++ b/src/main/java/org/nrg/xnat/itemBuilders/FileHistoryBuilderAbst.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.itemBuilders;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.xdat.om.XnatResourcecatalog;
 import org.nrg.xft.XFTItem;
diff --git a/src/main/java/org/nrg/xnat/itemBuilders/FileSummaryBuilder.java b/src/main/java/org/nrg/xnat/itemBuilders/FileSummaryBuilder.java
index b4bca49852b3cedb0eb81315fd100a5fdca2dd83..1fcdd64dfcb875b9e9ed4eed5876bafc12f5fc00 100644
--- a/src/main/java/org/nrg/xnat/itemBuilders/FileSummaryBuilder.java
+++ b/src/main/java/org/nrg/xnat/itemBuilders/FileSummaryBuilder.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.itemBuilders;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.XnatResourcecatalog;
 import org.nrg.xft.XFTItem;
 import org.nrg.xft.presentation.FlattenedItem.FlattenedItemModifierI;
diff --git a/src/main/java/org/nrg/xnat/restlet/XNATApplication.java b/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
index 64cd207498146e2b2f62cfd9ab2cbc677f6f90ab..3d3cda9a1476a6028808b6d04a45de0fb361b7a8 100755
--- a/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
+++ b/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.restlet;
 
 import com.google.common.base.Joiner;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.nrg.config.exceptions.ConfigServiceException;
 import org.nrg.framework.exceptions.NrgServiceRuntimeException;
diff --git a/src/main/java/org/nrg/xnat/restlet/actions/AutomationBasedImporter.java b/src/main/java/org/nrg/xnat/restlet/actions/AutomationBasedImporter.java
index 90207e1afc30ebedb2bee1b9650b3b7d2506669e..0cd57f8add0be061f25e7782780a419f84284954 100644
--- a/src/main/java/org/nrg/xnat/restlet/actions/AutomationBasedImporter.java
+++ b/src/main/java/org/nrg/xnat/restlet/actions/AutomationBasedImporter.java
@@ -27,7 +27,7 @@ import com.google.common.collect.Maps;
 
 import java.util.concurrent.Callable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/actions/PrearcImporterA.java b/src/main/java/org/nrg/xnat/restlet/actions/PrearcImporterA.java
index 3734086b19d31f12059866565bc87a11bd80c628..c3751a6cf8eb8ec90a2a7789f4a9734a55201091 100644
--- a/src/main/java/org/nrg/xnat/restlet/actions/PrearcImporterA.java
+++ b/src/main/java/org/nrg/xnat/restlet/actions/PrearcImporterA.java
@@ -19,7 +19,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/actions/SessionImporter.java b/src/main/java/org/nrg/xnat/restlet/actions/SessionImporter.java
index 35c0039376c34186c4ab41dd0df4475d77b24841..415d80201bd8795fe7a4097fb37a2190ab7e4128 100644
--- a/src/main/java/org/nrg/xnat/restlet/actions/SessionImporter.java
+++ b/src/main/java/org/nrg/xnat/restlet/actions/SessionImporter.java
@@ -18,7 +18,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/actions/importer/ImporterHandlerA.java b/src/main/java/org/nrg/xnat/restlet/actions/importer/ImporterHandlerA.java
index 3c497ce31fb09aaee4356f8b92f9f88eed0c5fb7..e84358d0321293205465d50341d80025182e6a35 100644
--- a/src/main/java/org/nrg/xnat/restlet/actions/importer/ImporterHandlerA.java
+++ b/src/main/java/org/nrg/xnat/restlet/actions/importer/ImporterHandlerA.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.actions.importer;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
index 9251919e524c97cf039d21b05a944de1e9a9aa6e..a93c308c1bfbe2500efddf88fb17b281df95b02b 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.extensions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/PipelineDetailsRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/PipelineDetailsRestlet.java
index 117eb76a178e0ad5db3717ecae704b808e157dc7..21d2c567edefc58df2f460119721ce68607579a8 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/PipelineDetailsRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/PipelineDetailsRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.extensions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.pipeline.PipelineRepositoryManager;
 import org.nrg.pipeline.utils.PipelineFileUtils;
 import org.nrg.pipeline.xmlbeans.PipelineData;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/ScanQualityLabelRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/ScanQualityLabelRestlet.java
index 46755a18a0be1ccd30d2825e51317615d4a1304a..a0f6977fba1c62393a0e23c341878a5e165c473f 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/ScanQualityLabelRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/ScanQualityLabelRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.extensions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.nrg.xnat.restlet.XnatRestlet;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/SendEmailVerification.java b/src/main/java/org/nrg/xnat/restlet/extensions/SendEmailVerification.java
index ae4d241e55d7801505efe9f6564e598233893e90..55a3fdd790442313bae121fe7069973d7559c89c 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/SendEmailVerification.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/SendEmailVerification.java
@@ -10,15 +10,10 @@
  */
 package org.nrg.xnat.restlet.extensions;
 
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.lang.StringEscapeUtils;
 import org.nrg.mail.services.EmailRequestLogService;
 import org.nrg.xdat.XDAT;
 import org.nrg.xdat.security.helpers.Users;
 import org.nrg.xdat.turbine.utils.AdminUtils;
-import org.nrg.xft.ItemI;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.restlet.XnatRestlet;
 import org.nrg.xnat.restlet.resources.SecureResource;
@@ -30,6 +25,9 @@ import org.restlet.data.Status;
 import org.restlet.resource.Resource;
 import org.restlet.resource.Variant;
 
+import java.util.Date;
+import java.util.List;
+
 @XnatRestlet(value = {"/services/sendEmailVerification"}, secure = false)
 public class SendEmailVerification extends Resource {
 
@@ -55,7 +53,7 @@ public class SendEmailVerification extends Resource {
              }
              
              // Send email and log request.
-             AdminUtils.sendNewUserVerificationEmail(getXDATUser(StringEscapeUtils.escapeSql(email)));
+             AdminUtils.sendNewUserVerificationEmail(getXDATUser(email));
              requests.logEmailRequest(email, new Date ());
           }
           catch(ExceededRequestsException e){
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/SessionCountRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/SessionCountRestlet.java
index ffbfce967799b9f0ef46a5383a30d533e58d3f03..dadb93ed63ebf8ff62dc07a5ae50e686ec964779 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/SessionCountRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/SessionCountRestlet.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.restlet.extensions;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/StudyRoutingRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/StudyRoutingRestlet.java
index ca58a9ff04d29a62396208aba5fd09865d617aa8..fbbb4e6736b453086b77309d0e58f8c82e9c4aa3 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/StudyRoutingRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/StudyRoutingRestlet.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.restlet.extensions;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xdat.security.SecurityManager;
 import org.nrg.xdat.security.helpers.Permissions;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/UserRolesRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/UserRolesRestlet.java
index bcbe08b91c23e2042ba99f7f9d51d4a553c427c2..ebc9829bbb6d5ae336d5b3a9a950bf19de6b5066 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/UserRolesRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/UserRolesRestlet.java
@@ -4,7 +4,7 @@ import java.util.Collection;
 import java.util.Hashtable;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.xdat.om.XdatRoleType;
 import org.nrg.xdat.security.helpers.Roles;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/UserSettingsRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/UserSettingsRestlet.java
index c0e4474383c9b4cebea78fe556b7585afe51669d..ff5da74b9b8534f8a9174cf0aac365711dc5d344 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/UserSettingsRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/UserSettingsRestlet.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.restlet.extensions;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.JsonNode;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.mail.services.EmailRequestLogService;
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/WorkflowsRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/WorkflowsRestlet.java
index a0323c141726aaf61e55aecf6b9d7f5e86db9e78..7e48694ec8e4abc26e66761b30bd507ef873260d 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/WorkflowsRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/WorkflowsRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.extensions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.WrkWorkflowdata;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.turbine.utils.PopulateItem;
diff --git a/src/main/java/org/nrg/xnat/restlet/files/utils/RestFileUtils.java b/src/main/java/org/nrg/xnat/restlet/files/utils/RestFileUtils.java
index 2f9a826824fcdfee5b521554820a20b001290a29..e790ad9306ee26f436f2d50294a13424f7e7e608 100644
--- a/src/main/java/org/nrg/xnat/restlet/files/utils/RestFileUtils.java
+++ b/src/main/java/org/nrg/xnat/restlet/files/utils/RestFileUtils.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.files.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.*;
 
 import java.io.File;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/AutomationResource.java b/src/main/java/org/nrg/xnat/restlet/resources/AutomationResource.java
index c0d62b297e404d0fc4dae92f524856a2d6cb75c1..125a6171355ec5b466bd11520cb43041553bd80e 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/AutomationResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/AutomationResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.utils.URLEncodedUtils;
 import org.nrg.action.ServerException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ConfigResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ConfigResource.java
index f24d5ab934a9884e76cf81afb0a0e122b37609b9..385f97f399e4fe5141794cf386315501ba2f131a 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ConfigResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ConfigResource.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.restlet.resources;
 
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.config.entities.Configuration;
 import org.nrg.config.exceptions.ConfigServiceException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/EventResource.java b/src/main/java/org/nrg/xnat/restlet/resources/EventResource.java
index 928689f8d727f946d1340afd128dcad2edb07657..3c1fa83987e032ca02f7b93c0efe706ee39c3c48 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/EventResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/EventResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.utils.URLEncodedUtils;
 import org.hibernate.HibernateException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ExperimentResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ExperimentResource.java
index 9b4c07ee446227f8cec7688e74efa08dd553e340..6f02c0c8241836b0bc5ab1baf4c81182cbd920b5 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ExperimentResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ExperimentResource.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ActionException;
 import org.nrg.transaction.TransactionException;
 import org.nrg.xdat.base.BaseElement;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ExptAssessmentResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ExptAssessmentResource.java
index 5e784d5c957002b8ba73e3677bfce6aac6ff11a2..3434d2f224972c6dfb6bdd1345566ccabf04f0a0 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ExptAssessmentResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ExptAssessmentResource.java
@@ -68,7 +68,7 @@ public class ExptAssessmentResource extends ItemResource {
 
 		String assessedID= (String)getParameter(request,"ASSESSED_ID");
 		if(assessedID!=null){
-			if(assesed==null && assessedID!=null){
+			if(assesed == null){
 				assesed = XnatExperimentdata.getXnatExperimentdatasById(assessedID, user, false);
 				if (assesed != null && (proj != null && !assesed.hasProject(proj.getId()))) {
 					assesed = null;
@@ -93,8 +93,8 @@ public class ExptAssessmentResource extends ItemResource {
 				this.getVariants().add(new Variant(MediaType.TEXT_HTML));
 				this.getVariants().add(new Variant(MediaType.TEXT_XML));
 			}
-		}else{
-			response.setStatus(Status.CLIENT_ERROR_NOT_FOUND,"Unable to find assessed experiment '" + TurbineUtils.escapeParam(assessedID) + "'");
+		} else {
+			response.setStatus(Status.CLIENT_ERROR_NOT_FOUND, "Unable to find assessed experiment, no ID submitted or found.");
 		}
 
 		this.fieldMapping.putAll(XMLPathShortcuts.getInstance().getShortcuts(XMLPathShortcuts.DERIVED_DATA,false));
@@ -108,15 +108,13 @@ public class ExptAssessmentResource extends ItemResource {
 
 	@Override
 	public void handlePut() {
-		XFTItem item = null;
-
 		try {
 			XFTItem template=null;
 			if (existing!=null && !this.isQueryVariableTrue("allowDataDeletion")){
 				template=existing.getItem().getCurrentDBVersion();
 			}
 
-			item=this.loadItem(null,true,template);
+			XFTItem item=this.loadItem(null,true,template);
 
 			if(item==null){
 				String xsiType=this.getQueryVariable("xsiType");
@@ -150,7 +148,7 @@ public class ExptAssessmentResource extends ItemResource {
 								if(pp.getProject().equals(newProject.getId())){
 									matched=(XnatExperimentdataShare)pp;
 									if(newLabel!=null && !pp.getLabel().equals(newLabel)){
-										((XnatExperimentdataShare)pp).setLabel(newLabel);
+										pp.setLabel(newLabel);
 										BaseXnatExperimentdata.SaveSharedProject((XnatExperimentdataShare)pp, assessor, user,newEventInstance(EventUtils.CATEGORY.DATA,(getAction()!=null)?getAction():EventUtils.RENAME_IN_SHARED_PROJECT));
 									}
 									break;
@@ -188,12 +186,12 @@ public class ExptAssessmentResource extends ItemResource {
 									}
 
 									if(Permissions.canCreate(user, assessor.getXSIType()+"/project", newProject.getId())){
-										XnatExperimentdataShare pp= new XnatExperimentdataShare((UserI)user);
+										XnatExperimentdataShare pp= new XnatExperimentdataShare(user);
 										pp.setProject(newProject.getId());
 										if(newLabel!=null)pp.setLabel(newLabel);
 										pp.setProperty("sharing_share_xnat_experimentda_id", assessor.getId());
 
-										BaseXnatExperimentdata.SaveSharedProject((XnatExperimentdataShare)pp, assessor, user,newEventInstance(EventUtils.CATEGORY.DATA,(getAction()!=null)?getAction():"Shared into additional project"));
+										BaseXnatExperimentdata.SaveSharedProject(pp, assessor, user, newEventInstance(EventUtils.CATEGORY.DATA, (getAction() != null) ? getAction() : "Shared into additional project"));
 									}else{
 										this.getResponse().setStatus(Status.CLIENT_ERROR_FORBIDDEN,"Specified user account has insufficient create privileges for experiments in the " + newProject.getId() + " project.");
 										return;
@@ -207,11 +205,9 @@ public class ExptAssessmentResource extends ItemResource {
 							this.returnDefaultRepresentation();
 						}else{
 							this.getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND,"Unable to identify project: " + newProjectS);
-							return;
 						}
 					}else{
 						this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
-						return;
 					}
 				}else{
 					if(assessor.getLabel()==null){
@@ -332,18 +328,18 @@ public class ExptAssessmentResource extends ItemResource {
 					}
 
 					//check for unexpected modifications of ID, Project and label
-					if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getId(),assessor.getId())){
+					if(existing !=null && !StringUtils.equals(existing.getId(),assessor.getId())){
 						this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"ID cannot be modified");
 						return;
 					}
 					
-					if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getProject(),assessor.getProject())){
+					if(existing !=null && !StringUtils.equals(existing.getProject(),assessor.getProject())){
 						this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"Project must be modified through separate URI.");
 						return;
 					}
 					
 					//MATCHED
-					if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getLabel(),assessor.getLabel())){
+					if(existing !=null && !StringUtils.equals(existing.getLabel(),assessor.getLabel())){
 						this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"Label must be modified through separate URI.");
 						return;
 					}
@@ -361,7 +357,6 @@ public class ExptAssessmentResource extends ItemResource {
 			this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
 		} catch (ActionException e) {
 			this.getResponse().setStatus(e.getStatus(),e.getMessage());
-			return;
 		} catch (Exception e) {
 			this.getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
 			logger.error("",e);
@@ -427,7 +422,6 @@ public class ExptAssessmentResource extends ItemResource {
 				if(msg!=null){
 					WorkflowUtils.fail(wrk, c);
 					this.getResponse().setStatus(Status.CLIENT_ERROR_FORBIDDEN,msg);
-					return;
 				}else{
 					WorkflowUtils.complete(wrk, c);
 				}
@@ -439,12 +433,10 @@ public class ExptAssessmentResource extends ItemResource {
 				}
 				logger.error("",e);
 				this.getResponse().setStatus(Status.SERVER_ERROR_INTERNAL,e.getMessage());
-				return;
 			}
 		} catch (EventRequirementAbsent e1) {
 			logger.error("",e1);
 			this.getResponse().setStatus(Status.CLIENT_ERROR_FORBIDDEN,e1.getMessage());
-			return;
 		}
 	}
 
@@ -462,7 +454,7 @@ public class ExptAssessmentResource extends ItemResource {
 
 		if(assessor!=null){
 			String filepath = this.getRequest().getResourceRef().getRemainingPart();
-			if(filepath!=null && filepath.indexOf("?")>-1){
+			if(filepath!=null && filepath.contains("?")){
 				filepath = filepath.substring(0,filepath.indexOf("?"));
 		}
 
@@ -471,37 +463,37 @@ public class ExptAssessmentResource extends ItemResource {
 			}
 			if(filepath!=null && filepath.equals("status")){
 				return returnStatus(assessor,mt);
-			}else if(filepath!=null && filepath.startsWith("projects")){
+			}else if (filepath != null && filepath.startsWith("projects")) {
 				XFTTable t = new XFTTable();
-				ArrayList<String> al = new ArrayList<String>();
+				ArrayList<String> al = new ArrayList<>();
 				al.add("label");
 				al.add("ID");
 				al.add("Secondary_ID");
 				al.add("Name");
 				t.initTable(al);
 
-				Object[] row=new Object[4];
-				row[0]=assessor.getLabel();
+				Object[] row = new Object[4];
+				row[0] = assessor.getLabel();
 				XnatProjectdata primary = assessor.getPrimaryProject(false);
-				row[1]=primary.getId();
-				row[2]=primary.getSecondaryId();
-				row[3]=primary.getName();
+				row[1] = primary.getId();
+				row[2] = primary.getSecondaryId();
+				row[3] = primary.getName();
 				t.rows().add(row);
 
-				for(Map.Entry<XnatProjectdataI, String> entry: assessor.getProjectDatas().entrySet()){
-					row=new Object[4];
-					row[0]=entry.getValue();
-					row[1]=entry.getKey().getId();
-					row[2]=entry.getKey().getSecondaryId();
-					row[3]=entry.getKey().getName();
+				for (Map.Entry<XnatProjectdataI, String> entry : assessor.getProjectDatas().entrySet()) {
+					row = new Object[4];
+					row[0] = entry.getValue();
+					row[1] = entry.getKey().getId();
+					row[2] = entry.getKey().getSecondaryId();
+					row[3] = entry.getKey().getName();
 					t.rows().add(row);
 				}
 
-				Hashtable<String,Object> params=new Hashtable<String,Object>();
-				if(t!=null)params.put("totalRecords", t.size());
+				Hashtable<String, Object> params = new Hashtable<String, Object>();
+				params.put("totalRecords", t.size());
 				return representTable(t, mt, params);
-			}else{
-				return this.representItem(assessor.getItem(),mt);
+			} else {
+				return this.representItem(assessor.getItem(), mt);
 			}
 		}else{
 			this.getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND,"Unable to find the specified experiment.");
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/PARResource.java b/src/main/java/org/nrg/xnat/restlet/resources/PARResource.java
index 644d3308d9961e7a10cca825db125e414880462e..e90dede4a5bdcd374b33b31fd7afb00958eb125c 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/PARResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/PARResource.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.security.helpers.Roles;
 import org.nrg.xft.XFTTable;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjSubExptAsstList.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjSubExptAsstList.java
index f489e01e88dbb5994bc5b62531908f011830868f..bda8a4b1c41693b59f9412daed093fd1a245e129 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjSubExptAsstList.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjSubExptAsstList.java
@@ -165,7 +165,7 @@ public class ProjSubExptAsstList extends QueryOrganizerResource {
 							}
 							
 							if(!matched){
-								XnatExperimentdataShare pp= new XnatExperimentdataShare((UserI)user);
+								XnatExperimentdataShare pp= new XnatExperimentdataShare(user);
 								pp.setProject(this.proj.getId());
 								assessor.setSharing_share(pp);
 							}
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjectGroupResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjectGroupResource.java
index 5af58320686fc74d62f190890929b0231b78a93c..87a625ec3ce5d54b2ceedb2d8a7d3d19ba8a9553 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjectGroupResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjectGroupResource.java
@@ -5,8 +5,8 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.NumberUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.security.ElementSecurity;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
index f3ea2a2b37c479b71c95d4bff742286ecf293904..d1c057a323b076a59ab58eedec843b7d27c3e18b 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
@@ -17,7 +17,7 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.velocity.VelocityContext;
 import org.nrg.action.ActionException;
 import org.nrg.xdat.display.DisplayManager;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjectResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjectResource.java
index 92b3a5e14f7f5e556e59d2f256acf9a4bc1c44f5..285997498b1aa4f2d12b7884f5b169fcf23e3aac 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjectResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjectResource.java
@@ -196,7 +196,7 @@ public class ProjectResource extends ItemResource {
                             } else if (filepath.startsWith("prearchive_code/")) {
                                 String qc = filepath.substring(16);
                                 if (!qc.equals("")) {
-                                    if (XDAT.getBoolSiteConfigurationProperty("project.allow-auto-archive", true) || org.apache.commons.lang.StringUtils.equals(qc, "0")) {
+                                    if (XDAT.getBoolSiteConfigurationProperty("project.allow-auto-archive", true) || StringUtils.equals(qc, "0")) {
                                         ArcProject ap = project.getArcSpecification();
                                         try {
                                             Integer qcI = Integer.valueOf(qc);
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjectUserListResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjectUserListResource.java
index 12a5322df1983e49ea4e95d1d9b5279a0813a7ba..9acf245cb52daca54bc32a064de693a2908ff4fd 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjectUserListResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjectUserListResource.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.config.services.ConfigService;
 import org.nrg.framework.constants.Scope;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
index 196e45df03687083c7185ce2bbbff0965785b666..f82bb483fa8daa66ce538349502ae605425c888d 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
@@ -19,7 +19,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.xmlbeans.XmlOptions;
 import org.nrg.pipeline.XnatPipelineLauncher;
 import org.nrg.pipeline.utils.PipelineFileUtils;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/RestMockCallMapRestlet.java b/src/main/java/org/nrg/xnat/restlet/resources/RestMockCallMapRestlet.java
index 3a4288bec00d1e6060509e788c88f46e9ef941c8..86936594d0b342b73bd78f49117323f0775b7f23 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/RestMockCallMapRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/RestMockCallMapRestlet.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.restlet.resources;
 
 import com.fasterxml.jackson.core.type.TypeReference;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import com.fasterxml.jackson.core.JsonFactory;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ScriptResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ScriptResource.java
index 92905f33715529813799ac44dc1fa818d0d313e7..059d174c4ddbcbc19d8e4bc660e84ad4ad800922 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ScriptResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ScriptResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
 import org.nrg.automation.entities.Script;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ScriptRunnerResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ScriptRunnerResource.java
index 31c458d3f9c1ab0c9ccea2fac9adc76cecaf1556..17c26725c7f27ee004488390968035cad5eb2099 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ScriptRunnerResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ScriptRunnerResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.automation.runners.ScriptRunner;
 import org.nrg.automation.services.ScriptRunnerService;
 import org.nrg.xdat.XDAT;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerResource.java
index 4564240f0462576250900051802ada2ec4df64a4..efb570006e92de8cb8b34b3377472683f9ab721c 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
 import org.nrg.automation.entities.ScriptTrigger;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerTemplateResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerTemplateResource.java
index 4ebd8205034dd6b4f209daeebab30585696fb367..23100cdf0a6c52931b2816620924f262849903c6 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerTemplateResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ScriptTriggerTemplateResource.java
@@ -1,7 +1,7 @@
 package org.nrg.xnat.restlet.resources;
 
 import com.google.common.base.Joiner;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.automation.entities.ScriptTrigger;
 import org.nrg.automation.entities.ScriptTriggerTemplate;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ScriptVersionsResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ScriptVersionsResource.java
index b017b3a32cf3b26115a0f0a71550b293427a9080..6e4d199b6db4f531c4579eeb785620a06989a8cc 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ScriptVersionsResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ScriptVersionsResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.automation.entities.Script;
 import org.nrg.automation.services.ScriptRunnerService;
 import org.nrg.automation.services.ScriptService;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
index f2d88bc8b39c2d7980a3e2cf40724757ce9aa064..45c58132afefd1cf312754b05fd2e1a1a9abcdca 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
@@ -17,7 +17,7 @@ import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.fileupload.DefaultFileItemFactory;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.TurbineException;
 import org.json.JSONException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/SubjAssessmentResource.java b/src/main/java/org/nrg/xnat/restlet/resources/SubjAssessmentResource.java
index 5818f324a04ecb4bb83d8e144784f37389d6ca51..41cc777e60fe9db733e99ef6ece3c8cdaee60daf 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/SubjAssessmentResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/SubjAssessmentResource.java
@@ -336,7 +336,7 @@ public class SubjAssessmentResource extends SubjAssessmentAbst {
 					if(this.subject!=null){
 							expt.setSubjectId(this.subject.getId());
 					}else{
-						if(StringUtils.isBlank(expt.getSubjectId()) && org.apache.commons.lang.StringUtils.isNotEmpty(subID)){
+						if(StringUtils.isBlank(expt.getSubjectId()) && StringUtils.isNotEmpty(subID)){
 							expt.setSubjectId(subID);
 						}
 
@@ -528,18 +528,18 @@ public class SubjAssessmentResource extends SubjAssessmentAbst {
 						
 
 						//check for unexpected modifications of ID, Project and label
-						if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getId(),expt.getId())){
+						if(existing !=null && !StringUtils.equals(existing.getId(),expt.getId())){
 							this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"ID cannot be modified");
 							return;
 						}
 						
-						if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getProject(),expt.getProject())){
+						if(existing !=null && !StringUtils.equals(existing.getProject(),expt.getProject())){
 							this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"Project must be modified through separate URI.");
 							return;
 						}
 						
 						//MATCHED
-						if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getLabel(),expt.getLabel())){
+						if(existing !=null && !StringUtils.equals(existing.getLabel(),expt.getLabel())){
 							this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"Label must be modified through separate URI.");
 							return;
 						}
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/SubjectResource.java b/src/main/java/org/nrg/xnat/restlet/resources/SubjectResource.java
index b5b2d008fdcee2ac6f20e1b36cfd0035c91cb44d..6fd78b27600d8d7689460089a998aa85e66a56ab 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/SubjectResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/SubjectResource.java
@@ -365,12 +365,12 @@ public class SubjectResource extends ItemResource {
 						
 
 						//check for unexpected modifications of ID and Project
-						if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getId(),sub.getId())){
+						if(existing !=null && !StringUtils.equals(existing.getId(),sub.getId())){
 							this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"ID cannot be modified");
 							return;
 						}
 						
-						if(existing !=null && !org.apache.commons.lang.StringUtils.equals(existing.getProject(),sub.getProject())){
+						if(existing !=null && !StringUtils.equals(existing.getProject(),sub.getProject())){
 							this.getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST,"Project must be modified through separate URI.");
 							return;
 						}                       
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/WorkflowEventResource.java b/src/main/java/org/nrg/xnat/restlet/resources/WorkflowEventResource.java
index e4f20b81d7278832dd76b671b9e884343ac7243c..34f582af225cd1b4184c4e784bdf45e4473f9c7c 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/WorkflowEventResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/WorkflowEventResource.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.restlet.resources;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xft.XFTTable;
 import org.nrg.xft.exception.DBPoolException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/files/CatalogResource.java b/src/main/java/org/nrg/xnat/restlet/resources/files/CatalogResource.java
index 89eb9a4b7c0270b88a0744696c1989124af47315..92215dadbcec79231109fc11e239404e5480a868 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/files/CatalogResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/files/CatalogResource.java
@@ -77,7 +77,7 @@ public class CatalogResource extends XNATCatalogTemplate {
         private void checkForNonEmptyFilePath(String remainingUrlPart) {
         	// we don't care about path separators or query parameters
         	// everything else will be rejected
-        	filePathIsEmpty = org.apache.commons.lang.StringUtils.isBlank(remainingUrlPart)
+        	filePathIsEmpty = StringUtils.isBlank(remainingUrlPart)
         		|| remainingUrlPart.matches("^/+") || remainingUrlPart.matches("^/*\\?.*");
         }
 	
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/files/FileList.java b/src/main/java/org/nrg/xnat/restlet/resources/files/FileList.java
index 5a417cd6cda812dd409fdfbf3670bcf30dda03e1..4f5f9c11b2c1dd4e1d79a83d3fee6dfc50eb116a 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/files/FileList.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/files/FileList.java
@@ -14,8 +14,8 @@ import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.io.filefilter.DirectoryFileFilter;
 import org.apache.commons.io.filefilter.FileFileFilter;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.json.JSONObject;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/files/XNATTemplate.java b/src/main/java/org/nrg/xnat/restlet/resources/files/XNATTemplate.java
index 7bce7fc3f91afeb419caf7dd1488a91e5e6393e3..56190dcc6cb764f6531cb5e43b99aacc4f2f3eb7 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/files/XNATTemplate.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/files/XNATTemplate.java
@@ -10,6 +10,7 @@
  */
 package org.nrg.xnat.restlet.resources.files;
 
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.bean.CatCatalogBean;
 import org.nrg.xdat.model.XnatImageassessordataI;
 import org.nrg.xdat.om.*;
@@ -319,11 +320,7 @@ public class XNATTemplate extends SecureResource {
 	}
 
 	public boolean allowMultipleMatches(){
-		if(this instanceof FileList && this.getRequest().getMethod().equals(Method.GET)){
-			return true;
-		}else{
-			return false;
-		}
+		return this instanceof FileList && this.getRequest().getMethod().equals(Method.GET);
 	}
 	
 	public ItemI getSecurityItem(){
@@ -349,7 +346,7 @@ public class XNATTemplate extends SecureResource {
 	}
 
 	public boolean insertCatalag(XnatResourcecatalog catResource,EventMetaI ci)
-			throws InvalidArchiveStructure, Exception {
+			throws Exception {
 		java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(
 				XNATRestConstants.PREARCHIVE_TIMESTAMP);
         String uploadID = formatter.format(Calendar.getInstance().getTime());
@@ -672,10 +669,8 @@ public class XNATTemplate extends SecureResource {
 						for (String resourceID : resourceIDs) {
 							if (c++ > 0)
 								query.append(" OR ");
-							if (org.apache.commons.lang.StringUtils
-									.isNumeric(resourceID)) {
-								query
-										.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
+							if (StringUtils.isNumeric(resourceID)) {
+								query.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
 								query.append(resourceID);
 								query.append(" OR abst.label='");
 								query.append(resourceID);
@@ -721,7 +716,7 @@ public class XNATTemplate extends SecureResource {
 						for (String resourceID : resourceIDs) {
 							if (c++ > 0)
 								query.append(" OR ");
-							if (org.apache.commons.lang.StringUtils
+							if (StringUtils
 									.isNumeric(resourceID)) {
 								query
 										.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
@@ -769,7 +764,7 @@ public class XNATTemplate extends SecureResource {
 				for (String resourceID : resourceIDs) {
 					if (c++ > 0)
 						query.append(" OR ");
-					if (org.apache.commons.lang.StringUtils
+					if (StringUtils
 							.isNumeric(resourceID)) {
 						query.append(" (abst.xnat_abstractresource_id=");
 						query.append(resourceID);
@@ -826,7 +821,7 @@ public class XNATTemplate extends SecureResource {
 						for (String resourceID : resourceIDs) {
 							if (c++ > 0)
 								query.append(" OR ");
-							if (org.apache.commons.lang.StringUtils
+							if (StringUtils
 									.isNumeric(resourceID)) {
 								query
 										.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
@@ -879,7 +874,7 @@ public class XNATTemplate extends SecureResource {
 						for (String resourceID : resourceIDs) {
 							if (c++ > 0)
 								query.append(" OR ");
-							if (org.apache.commons.lang.StringUtils
+							if (StringUtils
 									.isNumeric(resourceID)) {
 								query
 										.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
@@ -1016,7 +1011,7 @@ public class XNATTemplate extends SecureResource {
 					for (String resourceID : resourceIDs) {
 						if (c++ > 0)
 							query.append(" OR ");
-						if (org.apache.commons.lang.StringUtils
+						if (StringUtils
 								.isNumeric(resourceID)) {
 							query.append(" (xnat_abstractresource_id=");
 							query.append(resourceID);
@@ -1062,7 +1057,7 @@ public class XNATTemplate extends SecureResource {
 					for (String resourceID : resourceIDs) {
 						if (c++ > 0)
 							query.append(" OR ");
-						if (org.apache.commons.lang.StringUtils
+						if (StringUtils
 								.isNumeric(resourceID)) {
 							query
 									.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
@@ -1109,7 +1104,7 @@ public class XNATTemplate extends SecureResource {
 				for (String resourceID : resourceIDs) {
 					if (c++ > 0)
 						query.append(" OR ");
-					if (org.apache.commons.lang.StringUtils
+					if (StringUtils
 							.isNumeric(resourceID)) {
 						query
 								.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
@@ -1153,7 +1148,7 @@ public class XNATTemplate extends SecureResource {
 				for (String resourceID : resourceIDs) {
 					if (c++ > 0)
 						query.append(" OR ");
-					if (org.apache.commons.lang.StringUtils
+					if (StringUtils
 							.isNumeric(resourceID)) {
 						query
 								.append(" (map.xnat_abstractresource_xnat_abstractresource_id=");
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcScanResource.java b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcScanResource.java
index 3f65aaad960e0c9dbf4643d211a0161cc0268a44..2991c2c756c74d2cf7ec0f6d11097402979838bf 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcScanResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcScanResource.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionListResource.java b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionListResource.java
index ca0bf7e8c3d472a1a6c6a9269893ff813d928a00..dac3dee8635ab0727f9287cb5ea70728df1968a3 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionListResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionListResource.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.resources.prearchive;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.security.helpers.Roles;
 import org.nrg.xft.XFTTable;
 import org.nrg.xnat.helpers.prearchive.*;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResource.java b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResource.java
index acca0069830899665697dc113031cb571677dd35..f45fc030f16f6e8e9b9c6486b4921f4e2a6f0581 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResource.java
@@ -14,7 +14,7 @@ import com.google.common.base.Strings;
 import com.google.common.collect.Maps;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.TurbineException;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResourceFiles.java b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResourceFiles.java
index 844200e2a22cd2a7c890e56ccd87a68148cea95a..6e168de15586cc9df6075832f79487d3f8fa1401 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResourceFiles.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/prearchive/PrearcSessionResourceFiles.java
@@ -15,7 +15,7 @@
 package org.nrg.xnat.restlet.resources.prearchive;
 
 import com.google.common.collect.Lists;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ActionException;
 import org.nrg.dcm.Dcm2Jpg;
 import org.nrg.xdat.model.CatCatalogI;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/AliasTokenRestlet.java b/src/main/java/org/nrg/xnat/restlet/services/AliasTokenRestlet.java
index fd347ffa82d06f67cfbc5e2ccabc923182bf9d86..c7c6b2ce4da3c1417c564d0ffbd217f9e2cf0d69 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/AliasTokenRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/AliasTokenRestlet.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.restlet.services;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.XDAT;
 import org.nrg.xdat.entities.AliasToken;
 import org.nrg.xdat.security.helpers.Roles;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/Archiver.java b/src/main/java/org/nrg/xnat/restlet/services/Archiver.java
index 70d1700ea0ee358d63aae8cb2099901f68dda924..c7948346acb4e1f5e46c4abd3f3fe041e93c3ffa 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/Archiver.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/Archiver.java
@@ -20,7 +20,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
 import org.nrg.status.StatusListenerI;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/FeatureDefinitionRestlet.java b/src/main/java/org/nrg/xnat/restlet/services/FeatureDefinitionRestlet.java
index 9e61479b6b797cb8c8342403830ecece2d604ca0..21aa94687256275359691772274137e1fe72e545 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/FeatureDefinitionRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/FeatureDefinitionRestlet.java
@@ -7,8 +7,8 @@ import java.util.Hashtable;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.BooleanUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/Importer.java b/src/main/java/org/nrg/xnat/restlet/services/Importer.java
index e0a67f595b0bdfcbd9029e94aa595b47472f5302..e73c3a720f082576e74c4ac9ac5c3bcae0c1e1a3 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/Importer.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/Importer.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.restlet.services;
 
 import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
 import org.nrg.framework.constants.PrearchiveCode;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/MoveFiles.java b/src/main/java/org/nrg/xnat/restlet/services/MoveFiles.java
index 43781d73ffcfaa5c21dfb64fcbfc88d9cb4f3087..8f65fd6dca2b8fb3f8bf82e611f11c72a6a317ba 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/MoveFiles.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/MoveFiles.java
@@ -13,7 +13,7 @@ package org.nrg.xnat.restlet.services;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
 import org.nrg.xft.event.EventMetaI;
diff --git a/src/main/java/org/nrg/xnat/restlet/services/SettingsRestlet.java b/src/main/java/org/nrg/xnat/restlet/services/SettingsRestlet.java
index 5625fdcfef13fe6c9bc871ca79efc491c07652b4..5763aa252b656e9b1802799f024908605192e660 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/SettingsRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/SettingsRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.services;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.hibernate.PropertyNotFoundException;
 import org.nrg.config.entities.Configuration;
 import org.nrg.config.exceptions.ConfigServiceException;
@@ -42,6 +42,7 @@ import org.nrg.xnat.security.FilterSecurityInterceptorBeanPostProcessor;
 import org.nrg.xnat.security.XnatExpiredPasswordFilter;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 import org.nrg.xnat.utils.BuildDirScriptRunnerOutputAdapter;
+import org.nrg.xnat.utils.XnatHttpUtils;
 import org.restlet.Context;
 import org.restlet.data.*;
 import org.restlet.resource.Representation;
@@ -133,7 +134,8 @@ public class SettingsRestlet extends SecureResource {
 
         settings.putAll(XDAT.getSiteConfiguration());
         settings.put("siteId", getSiteId());
-        settings.put("siteUrl", _arcSpec.getSiteUrl());
+        final String siteUrl = StringUtils.isBlank(_arcSpec.getSiteUrl()) ? XnatHttpUtils.getServerRoot(getHttpServletRequest()) : _arcSpec.getSiteUrl();
+        settings.put("siteUrl", siteUrl);
         settings.put("siteAdminEmail", _arcSpec.getSiteAdminEmail());
         settings.put("smtpHost", _arcSpec.getSmtpHost());
         settings.put("requireLogin", _arcSpec.getRequireLogin());
diff --git a/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java b/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
index c25cec3d8426d8c2f48c79debc46a9d7cfeac92c..113758c079cfd9f9410817966113d430b0153039 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.restlet.services.mail;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/src/main/java/org/nrg/xnat/restlet/util/RequestUtil.java b/src/main/java/org/nrg/xnat/restlet/util/RequestUtil.java
index 335ab80dbbfb5fe460908342f9c8d86bda66ce6e..a28e3093874f49d5832c8cc37ae31201b5f1b909 100644
--- a/src/main/java/org/nrg/xnat/restlet/util/RequestUtil.java
+++ b/src/main/java/org/nrg/xnat/restlet/util/RequestUtil.java
@@ -15,7 +15,7 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xnat.restlet.resources.SecureResource;
 import org.restlet.data.MediaType;
 import org.restlet.data.Request;
diff --git a/src/main/java/org/nrg/xnat/security/XnatAuthenticationEntryPoint.java b/src/main/java/org/nrg/xnat/security/XnatAuthenticationEntryPoint.java
index 82c7d4ffb3840d395502f587e34425ce55b04f5e..3c08027aa4f2df48283a2f49a53f6133d101458b 100644
--- a/src/main/java/org/nrg/xnat/security/XnatAuthenticationEntryPoint.java
+++ b/src/main/java/org/nrg/xnat/security/XnatAuthenticationEntryPoint.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.security;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.security.core.AuthenticationException;
diff --git a/src/main/java/org/nrg/xnat/security/XnatAuthenticationFilter.java b/src/main/java/org/nrg/xnat/security/XnatAuthenticationFilter.java
index b1d2a3a991dff3fb3e470ebcc66955be91d2e086..dfb1c279d4fcf688fb55e839c0a243016625f35c 100644
--- a/src/main/java/org/nrg/xnat/security/XnatAuthenticationFilter.java
+++ b/src/main/java/org/nrg/xnat/security/XnatAuthenticationFilter.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.security;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xdat.security.helpers.Users;
diff --git a/src/main/java/org/nrg/xnat/security/XnatArcSpecFilter.java b/src/main/java/org/nrg/xnat/security/XnatInitCheckFilter.java
similarity index 82%
rename from src/main/java/org/nrg/xnat/security/XnatArcSpecFilter.java
rename to src/main/java/org/nrg/xnat/security/XnatInitCheckFilter.java
index 1545fd542cbe36063814b1ef903ac0045d236675..07e932cb670efdc655a13515c247b5923d3bf346 100644
--- a/src/main/java/org/nrg/xnat/security/XnatArcSpecFilter.java
+++ b/src/main/java/org/nrg/xnat/security/XnatInitCheckFilter.java
@@ -1,5 +1,5 @@
 /*
- * org.nrg.xnat.security.XnatArcSpecFilter
+ * org.nrg.xnat.security.XnatInitCheckFilter
  * XNAT http://www.xnat.org
  * Copyright (c) 2014, Washington University School of Medicine
  * All Rights Reserved
@@ -26,9 +26,10 @@ import org.nrg.xdat.security.helpers.Roles;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
+import org.nrg.xnat.utils.XnatHttpUtils;
 import org.springframework.web.filter.GenericFilterBean;
 
-public class XnatArcSpecFilter extends GenericFilterBean {
+public class XnatInitCheckFilter extends GenericFilterBean {
 
     @Override
     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
@@ -70,12 +71,15 @@ public class XnatArcSpecFilter extends GenericFilterBean {
                 	// (NB: I tried putting this check up with the basic auth check, 
                 	// but you get this weird redirect with 2 login pages on the same screen.  Seems to work here).
                         chain.doFilter(req, res);
-                    } else if (Roles.isSiteAdmin(user)) {
-                        //Otherwise, if the user has administrative permissions, direct the user to the configuration page.
-                        response.sendRedirect(TurbineUtils.GetFullServerPath() + _configurationPath);
                     } else {
-                        //The arc spec is not set but the user does not have administrative permissions. Direct the user to an error page.
-                        response.sendRedirect(TurbineUtils.GetFullServerPath() + _nonAdminErrorPath);
+                        final String serverPath = XnatHttpUtils.getServerRoot(request);
+                        if (Roles.isSiteAdmin(user)) {
+                            //Otherwise, if the user has administrative permissions, direct the user to the configuration page.
+                            response.sendRedirect(serverPath + _configurationPath);
+                        } else {
+                            //The arc spec is not set but the user does not have administrative permissions. Direct the user to an error page.
+                            response.sendRedirect(serverPath + _nonAdminErrorPath);
+                        }
                     }
                 } catch (Exception e) {
                     logger.error("Error checking user role in the Arc Spec Filter.", e);
@@ -114,5 +118,5 @@ public class XnatArcSpecFilter extends GenericFilterBean {
     private String _initializationPath = "";
     private String _configurationPath = "";
     private String _nonAdminErrorPath = "";
-    private final List<String> _exemptedPaths = new ArrayList<String>();
+    private final List<String> _exemptedPaths = new ArrayList<>();
 }
diff --git a/src/main/java/org/nrg/xnat/security/XnatProviderManager.java b/src/main/java/org/nrg/xnat/security/XnatProviderManager.java
index f24ad389eaa090bc8922d22050936c37b1282e13..429e320f499a7fdf90ed2bdce9c12eba5c308cb8 100644
--- a/src/main/java/org/nrg/xnat/security/XnatProviderManager.java
+++ b/src/main/java/org/nrg/xnat/security/XnatProviderManager.java
@@ -11,8 +11,8 @@
 package org.nrg.xnat.security;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.velocity.VelocityContext;
diff --git a/src/main/java/org/nrg/xnat/security/alias/AliasTokenAuthenticationProvider.java b/src/main/java/org/nrg/xnat/security/alias/AliasTokenAuthenticationProvider.java
index 250e2bc5cbf8489a7510a25948b001961cae7872..37e51060c440680d3dafb24710bc3f8bbd149651 100644
--- a/src/main/java/org/nrg/xnat/security/alias/AliasTokenAuthenticationProvider.java
+++ b/src/main/java/org/nrg/xnat/security/alias/AliasTokenAuthenticationProvider.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.security.alias;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xdat.entities.AliasToken;
 import org.nrg.xdat.security.helpers.Users;
 import org.nrg.xdat.services.AliasTokenService;
diff --git a/src/main/java/org/nrg/xnat/security/config/AuthenticationProviderAggregator.java b/src/main/java/org/nrg/xnat/security/config/AuthenticationProviderAggregator.java
index c6ed207eb8eabfd11fc7afc48873ffadc0e94b3c..f5b0ce3a17eac17d1b7b9c8c086b4ab4782d5a81 100644
--- a/src/main/java/org/nrg/xnat/security/config/AuthenticationProviderAggregator.java
+++ b/src/main/java/org/nrg/xnat/security/config/AuthenticationProviderAggregator.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.security.config;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AuthenticationProvider;
 
 import java.util.*;
diff --git a/src/main/java/org/nrg/xnat/security/config/LdapAuthenticationProviderConfigurator.java b/src/main/java/org/nrg/xnat/security/config/LdapAuthenticationProviderConfigurator.java
index d24ad353a0747f3aa7a75454b8244ae068cf01ac..874b2d0dc1deafda2dd9a250ab1c4fad4f108250 100644
--- a/src/main/java/org/nrg/xnat/security/config/LdapAuthenticationProviderConfigurator.java
+++ b/src/main/java/org/nrg/xnat/security/config/LdapAuthenticationProviderConfigurator.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.security.config;
 
-import org.apache.commons.lang.NotImplementedException;
+import org.apache.commons.lang3.NotImplementedException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xnat.security.XnatLdapAuthoritiesPopulator;
diff --git a/src/main/java/org/nrg/xnat/security/config/PropertyAggregator.java b/src/main/java/org/nrg/xnat/security/config/PropertyAggregator.java
index e5cb2cc26568da6466499ac01b38932c09621219..4e056eda8af43b9df9338dbf7c0f0bc7e3253b78 100644
--- a/src/main/java/org/nrg/xnat/security/config/PropertyAggregator.java
+++ b/src/main/java/org/nrg/xnat/security/config/PropertyAggregator.java
@@ -1,6 +1,6 @@
 package org.nrg.xnat.security.config;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/java/org/nrg/xnat/services/impl/ThemeServiceImpl.java b/src/main/java/org/nrg/xnat/services/impl/ThemeServiceImpl.java
index 8f2d1315f6879cf53f9ad0c6562d9c92f3401f8e..7673f055a8de6ccf4ee006b0d123eee3376d638f 100644
--- a/src/main/java/org/nrg/xnat/services/impl/ThemeServiceImpl.java
+++ b/src/main/java/org/nrg/xnat/services/impl/ThemeServiceImpl.java
@@ -12,8 +12,8 @@
 package org.nrg.xnat.services.impl;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.xnat.configuration.ThemeConfig;
 import org.nrg.xnat.services.ThemeService;
 import org.nrg.xnat.utils.SerializerService;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/AcceptProjectAccess.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/AcceptProjectAccess.java
index 04f0255793958e7e2e1bc2b53ba9437b3fedabf0..5aeeaa473832463d1606dab90807b4f75690057c 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/AcceptProjectAccess.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/AcceptProjectAccess.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.turbine.modules.actions;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.util.RunData;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
index 37352e2ef36f2bfec373caa55f3e5f6f42d8d0a6..6aae275a9734616b24e7a3c3da3256dc1d1e1f45 100755
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
index 0e9057931147c2e5dd07288471a862ba11f3108f..069a156e7f8428f5d0bcce02e7055198e1fe88c5 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.turbine.modules.actions;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.security.helpers.Users;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/CreateExperiment.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/CreateExperiment.java
index 5c4f9f5d3b8b517b6fff07296833abd51edf52a6..9d44f3233f8a2004b154d9728a567b2abfb8a617 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/CreateExperiment.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/CreateExperiment.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.schema.SchemaElement;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadImages.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadImages.java
index 5b115cfdf013bc2685ab8d8aed3217c9e8809ad4..a365a8181f6eb0bcdf44f09696ab29671a662119 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadImages.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadImages.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.turbine.modules.actions;
 
 import edu.sdsc.grid.io.GeneralFile;
-import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadSessionsAction2.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadSessionsAction2.java
index ee2173ffe483733dce0d3037fa5869b4e4d6cef7..18190b742c2cabba01dd9a6228c08f13d108a915 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadSessionsAction2.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/DownloadSessionsAction2.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.bean.CatCatalogBean;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ModifySubjectAssessorData.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ModifySubjectAssessorData.java
index 5604167d83264afb3b9f1d5008106bebc6cfc2e4..c34f42666b2a38dd8ea0472507ea02006c89ccac 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ModifySubjectAssessorData.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ModifySubjectAssessorData.java
@@ -14,7 +14,7 @@ import java.util.Calendar;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
index 6d0c4ca4ecc7549a08d6d245f4e913fc4e69549c..942200b051ffcaa4582040e6315272e310e0881f 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
@@ -19,6 +19,7 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
@@ -294,7 +295,7 @@ public class PipelineActions extends SecureAction{
             String key = (String)keys.next();
             if (key.startsWith(pattern)) {
                 if (replace != null)
-                    rtn.put(org.apache.commons.lang.StringUtils.replace(key,replace,""),((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter(key,data)));
+                    rtn.put(StringUtils.replace(key, replace, ""), ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter(key, data)));
                 else 
                     rtn.put(key,((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter(key,data)));
             }
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
index ad314946d91de53b20eb7b712d4984fd5a164e2e..c927eca91e4d87ff8b55854667e50abe9cb3cd1c 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
@@ -14,7 +14,7 @@ import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.Template;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
index 1685b926d979b54668bab1ed36278f19deaa8f12..a42b5801ba0f62963de1ec1aa53f4c5c831564e8 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
@@ -23,7 +23,7 @@ import java.util.Date;
 import java.util.Enumeration;
 import java.util.Hashtable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.apache.xmlbeans.XmlOptions;
@@ -233,7 +233,7 @@ public class QDECAction extends ListingAction{
 		if (parts != null ) {
 			if (parts.length > 1) {
 				for (int i = 0; i < parts.length; i++) {
-					rtn += StringUtils.capitalise(parts[i]);
+					rtn += StringUtils.capitalize(parts[i]);
 				}
 			}else if (parts.length == 1) {
 				rtn = parts[0];
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ReportIssue.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ReportIssue.java
index beade2b53e0eeefeb9cde97190fb74034570b6c5..1a0582049fab4e51623f7296bb63b20096ed5dad 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ReportIssue.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ReportIssue.java
@@ -16,7 +16,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.parser.ParameterParser;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATForgotLogin.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATForgotLogin.java
index e7b5c617e204dda1805fe791cdb46607083d1382..f9da05543396d95efc2d64a7e2b107d50327016f 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATForgotLogin.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATForgotLogin.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATLoginUser.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATLoginUser.java
index ea1ca0f3e5560165b58988238b860da6e96e9ede..a368b9293907fb273adc2fcdbdc25ed1334207e6 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATLoginUser.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATLoginUser.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.modules.ActionLoader;
 import org.apache.turbine.modules.actions.VelocityAction;
 import org.apache.turbine.util.RunData;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATRegisterUser.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATRegisterUser.java
index d3f6d92484cd9233004fe17957adebc945cabac2..ce98b18771f2b2458f751ebf0a9a161090d0bddf 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATRegisterUser.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/XDATRegisterUser.java
@@ -16,7 +16,7 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.modules.ActionLoader;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/EditScript.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/EditScript.java
index 73c579588be72d2c9437a9ccc6610dc2edc68198..bbd2bc73fcdd85b01e3b9882a3c47d44c1146e26 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/EditScript.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/EditScript.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.automation.entities.Script;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/InactiveAccount.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/InactiveAccount.java
index 3be8414f09b45371559250cbfdeadff8acaea16a..a85fd2024c76674d1eaf5c85bd8ef977f9f6ce41 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/InactiveAccount.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/InactiveAccount.java
@@ -21,8 +21,8 @@ package org.nrg.xnat.turbine.modules.screens;/*
 
 import java.sql.SQLException;
 
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.modules.screens.VelocitySecureScreen;
 import org.apache.turbine.services.velocity.TurbineVelocity;
 import org.apache.turbine.util.RunData;
@@ -87,7 +87,7 @@ public class InactiveAccount extends VelocitySecureScreen {
                             if(userID.toLowerCase().contains("script"))
                             {
                                 e= new Exception("Illegal username &lt;script&gt; usage.");
-                                AdminUtils.sendAdminEmail("Possible Cross-site scripting attempt blocked", StringEscapeUtils.escapeHtml(userID));
+                                AdminUtils.sendAdminEmail("Possible Cross-site scripting attempt blocked", StringEscapeUtils.escapeHtml4(userID));
                                 log.error("",e);
                                 data.setScreenTemplate("Error.vm");
                                 data.getParameters().setString("exception", e.toString());
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/LaunchUploadApplet.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/LaunchUploadApplet.java
index 739fb9436059b98b2fd1dea8f28ab38c1d01df2c..c38386745e7b0c3545c3afcacb9ce0c099f03412 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/LaunchUploadApplet.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/LaunchUploadApplet.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.turbine.util.RunData;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
index 3b7fec4ff76c9b0971540510594da916a625b309..4049a2275b7de72889f12f5df7b2a7ed65b10f82 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
@@ -10,8 +10,8 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.services.velocity.TurbineVelocity;
 import org.apache.turbine.util.RunData;
@@ -64,12 +64,11 @@ public class XDATScreen_UpdateUser extends SecureScreen {
                         try
                         {
                             context.put("forgot", true);
-                            data.getSession().setAttribute("forgot",new Boolean(true));
+                            data.getSession().setAttribute("forgot", true);
                             userID = XDAT.getContextService().getBean(AliasTokenService.class).validateToken(alias,Long.parseLong(secret));
                             if(userID!=null){
                                 user = Users.getUser(userID);
-                                boolean forcePasswordChange = true;
-                                XDAT.loginUser(data, user, forcePasswordChange);
+                                XDAT.loginUser(data, user, true);
                             }
                             else{
                                 invalidInformation(data, context, "Change password opportunity expired.  Change password requests can only be used once and expire after 24 hours.  Please restart the change password process.");
@@ -82,11 +81,11 @@ public class XDATScreen_UpdateUser extends SecureScreen {
 
                             AccessLogger.LogActionAccess(data, "Failed Login by alias '" + alias + "': " + e.getMessage());
 
-                            if(userID.toLowerCase().contains("script"))
-                            {
-                                e= new Exception("Illegal username &lt;script&gt; usage.");
-                                AdminUtils.sendAdminEmail("Possible Cross-site scripting attempt blocked", StringEscapeUtils.escapeHtml(userID));
-                                log.error("",e);
+                            if (userID == null || userID.toLowerCase().contains("script")) {
+                                e = new Exception("Illegal username &lt;script&gt; usage.");
+                                final String message = userID == null ? "No user ID found." : StringEscapeUtils.escapeHtml4(userID);
+                                AdminUtils.sendAdminEmail("Possible Cross-site scripting attempt blocked", message);
+                                log.error(message,e);
                                 data.setScreenTemplate("Error.vm");
                                 data.getParameters().setString("exception", e.toString());
                                 return;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_add_experiment.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_add_experiment.java
index 0860c75933dab7ee98efb1a4aeaf152a756521f0..0c0682ffe8afca8dec5e527acbb0ab7aabf18608 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_add_experiment.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_add_experiment.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.om.XnatSubjectdata;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_edit_scr_screeningAssessment.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_edit_scr_screeningAssessment.java
index 64fec9aad6aa770693fb40b659aa38e16b57742d..5e9ac863c4a6dac67480deb85b2e15c1c793feb7 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_edit_scr_screeningAssessment.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_edit_scr_screeningAssessment.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.model.XnatImagescandataI;
@@ -97,12 +97,12 @@ public class XDATScreen_edit_scr_screeningAssessment extends org.nrg.xnat.turbin
         
         if (al.size()>0 || claimedIDs.size()>0){
             int count =al.size()+1;
-            String full = org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+            String full = StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
             temp_id = sessionLabel+labelExtension+ full;
 
             while (al.contains(temp_id) || claimedIDs.contains(temp_id)){
                 count++;
-                full =org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+                full =StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
                 temp_id = sessionLabel+labelExtension+ full;
             }
             
@@ -111,7 +111,7 @@ public class XDATScreen_edit_scr_screeningAssessment extends org.nrg.xnat.turbin
             return temp_id;
         }else{
             int count =1;
-            String full = org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+            String full = StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
             temp_id = sessionLabel+labelExtension+ full;
             return temp_id;
         }
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_uploaded_xnat_imageSessionData.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_uploaded_xnat_imageSessionData.java
index d00fab1f7332b631bce0d69c8dfff1993a0f1c3b..3f2241644ddcbb4cb9be367b3274f6e6db7d3332 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_uploaded_xnat_imageSessionData.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_uploaded_xnat_imageSessionData.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.turbine.modules.screens;
 
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.xdat.base.BaseElement;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XnatErrorScreen.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XnatErrorScreen.java
index 0cf831531814f5b440258019c78c3508cd957c4f..ac8d9b719c902f75af52428d8ea18fb544b7420c 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XnatErrorScreen.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XnatErrorScreen.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.turbine.modules.screens;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.modules.screens.VelocityErrorScreen;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java b/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
index 9b460146f25db265835cffeb2249ebf6dbef8eaa..a1a066810915a5d8867963a3b50a37bd5dd972fd 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
@@ -87,12 +87,12 @@ public class IDGenerator implements IDGeneratorI {
 	        
 	        if (al.size()>0 || claimedIDs.size()>0){
 	            int count =al.size()+1;
-	            String full = org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+	            String full = StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
 	            temp_id = site+ full;
 	
 	            while (al.contains(temp_id) || claimedIDs.contains(temp_id)){
 	                count++;
-	                full =org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+	                full =StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
 	                temp_id = site+ full;
 	            }
 	            
@@ -101,7 +101,7 @@ public class IDGenerator implements IDGeneratorI {
 	            return temp_id;
 	        }else{
 	            int count =1;
-	            String full = org.apache.commons.lang.StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
+	            String full = StringUtils.leftPad((new Integer(count)).toString(), digits, '0');
 	            temp_id = site+ full;
 	            return temp_id;
 	        }
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java b/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
index bf86d90aa41ad9247430546944cf984d4b23ee9d..08d261b0ba7af174a1471c8accd3096c46e4d4f9 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
@@ -510,7 +510,7 @@ public class ProjectAccessRequest {
     	setUserId(user.getID());
 		setApproved(accept);
 		setApprovalDate(Calendar.getInstance().getTime());
-        if (!org.apache.commons.lang.StringUtils.equalsIgnoreCase(parEmail, user.getEmail())) {
+        if (!StringUtils.equalsIgnoreCase(parEmail, user.getEmail())) {
             setEmail(user.getEmail());
         }
         save(user);
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/ScanQualityUtils.java b/src/main/java/org/nrg/xnat/turbine/utils/ScanQualityUtils.java
index c1273694492cfc59ebf55d9b2127b7c408c55a31..0a6bfe94dba1341a32078f2e848b3bed20246c2e 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/ScanQualityUtils.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/ScanQualityUtils.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.turbine.utils;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.config.exceptions.ConfigServiceException;
 import org.nrg.config.services.ConfigService;
 import org.nrg.framework.constants.Scope;
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/XNATUtils.java b/src/main/java/org/nrg/xnat/turbine/utils/XNATUtils.java
index 0dd27da59f1321e15014b24244ba8de5c7c20c10..618a40a0f538e3f3d57ad15e003987a58d7f7eb8 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/XNATUtils.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/XNATUtils.java
@@ -20,7 +20,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.commons.collections.MultiMap;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.nrg.xdat.base.BaseElement;
diff --git a/src/main/java/org/nrg/xnat/utils/CatalogUtils.java b/src/main/java/org/nrg/xnat/utils/CatalogUtils.java
index 795973a032f7dfa3cc5cebe3e482200a3b3fd2d9..d630a6afdcddfe59e669f15d7cfb571fb1081b53 100755
--- a/src/main/java/org/nrg/xnat/utils/CatalogUtils.java
+++ b/src/main/java/org/nrg/xnat/utils/CatalogUtils.java
@@ -12,7 +12,7 @@ package org.nrg.xnat.utils;
 
 import com.google.common.collect.Lists;
 import com.twmacinta.util.MD5;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.config.entities.Configuration;
 import org.nrg.config.exceptions.ConfigServiceException;
 import org.nrg.framework.constants.Scope;
diff --git a/src/main/java/org/nrg/xnat/utils/ChecksumsSiteConfigurationListener.java b/src/main/java/org/nrg/xnat/utils/ChecksumsSiteConfigurationListener.java
index 2c6e4c861f7218ce1c0a3fa4ba77653ee05521ce..fba20d1cc79b9427886256507a65aa8ef18f601e 100644
--- a/src/main/java/org/nrg/xnat/utils/ChecksumsSiteConfigurationListener.java
+++ b/src/main/java/org/nrg/xnat/utils/ChecksumsSiteConfigurationListener.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.config.interfaces.SiteConfigurationPropertyChangedListener;
 
 public class ChecksumsSiteConfigurationListener implements SiteConfigurationPropertyChangedListener {
diff --git a/src/main/java/org/nrg/xnat/utils/FileUtils.java b/src/main/java/org/nrg/xnat/utils/FileUtils.java
index cb0a9a88e27b95efb5029bf71f5622c9b1f76e04..1234010afc69c4b7df6767774ca236a100b2dd6c 100644
--- a/src/main/java/org/nrg/xnat/utils/FileUtils.java
+++ b/src/main/java/org/nrg/xnat/utils/FileUtils.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xft.XFT;
diff --git a/src/main/java/org/nrg/xnat/utils/ResourceUtils.java b/src/main/java/org/nrg/xnat/utils/ResourceUtils.java
index 56a1b063fbd2fd7b1041230289d3eec1726c610c..a525959e1a0b438edf10b90bb72ce543d8870292 100644
--- a/src/main/java/org/nrg/xnat/utils/ResourceUtils.java
+++ b/src/main/java/org/nrg/xnat/utils/ResourceUtils.java
@@ -10,7 +10,7 @@
  */
 package org.nrg.xnat.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.nrg.action.ActionException;
 import org.nrg.action.ClientException;
 import org.nrg.action.ServerException;
diff --git a/src/main/java/org/nrg/xnat/utils/XnatHttpUtils.java b/src/main/java/org/nrg/xnat/utils/XnatHttpUtils.java
index 6cb5a668e355a49b03eee966b61ab1c0df3d781b..238c25f6b6c9cee6b24769bfeba8ba037f7aad05 100644
--- a/src/main/java/org/nrg/xnat/utils/XnatHttpUtils.java
+++ b/src/main/java/org/nrg/xnat/utils/XnatHttpUtils.java
@@ -10,6 +10,7 @@
  */
 package org.nrg.xnat.utils;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 
 import javax.servlet.http.Cookie;
@@ -32,4 +33,10 @@ public class XnatHttpUtils {
 	public static String getJSESSIONID(RunData runData) {
 		return getJSESSIONID(runData.getRequest());
 	}
+
+    public static String getServerRoot(final HttpServletRequest request) {
+        final String port = request.getServerPort() == 80 ? "" : ":" + request.getServerPort();
+        final String servletPath = StringUtils.defaultIfBlank(request.getContextPath(), "");
+        return String.format("%s://%s%s%s", request.getScheme(), request.getServerName(), port, servletPath);
+    }
 }
diff --git a/src/main/webapp/WEB-INF/conf/InstanceSettings.xml.sample b/src/main/webapp/WEB-INF/conf/InstanceSettings.xml.sample
deleted file mode 100644
index a176477249c0a9a4b2ea8352e5fa38ab49692b19..0000000000000000000000000000000000000000
--- a/src/main/webapp/WEB-INF/conf/InstanceSettings.xml.sample
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Instance_Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                   xsi:noNamespaceSchemaLocation="schemas/xdat/instance.xsd"
-                   site_url="http://localhost:8080" admin_email="administrator@xnat.org"
-                   archive_root_path="/data/xnat/archive"
-                   prearchive_path="/data/xnat/prearchive" cache_path="/data/xnat/cache"
-                   smtp_server="mail.server" ftp_path="/data/xnat/ftp" build_path="/data/xnat/build"
-                   pipeline_path="/data/xnat/pipeline" require_login="true" user_registration="false"
-                   enable_csrf_token="true">
-    <Databases>
-        <Database Type="POSTGRESQL" Id="xnat" Driver="org.postgresql.Driver" Url="jdbc:postgresql://localhost/xnat"
-                  User="xnat" Pass="xnat" MaxConnections="10"/>
-    </Databases>
-    <Models>
-        <Data_Model File_Name="security.xsd" File_Location="schemas/security" DB="xnat"/>
-        <Data_Model File_Name="birnprov.xsd" File_Location="schemas/birn" DB="xnat"/>
-        <Data_Model File_Name="xnat.xsd" File_Location="schemas/xnat" DB="xnat"/>
-        <Data_Model File_Name="workflow.xsd" File_Location="schemas/pipeline" DB="xnat"/>
-        <Data_Model File_Name="repository.xsd" File_Location="schemas/pipeline" DB="xnat"/>
-        <Data_Model File_Name="project.xsd" File_Location="schemas/project" DB="xnat"/>
-        <Data_Model File_Name="assessments.xsd" File_Location="schemas/assessments" DB="xnat"/>
-        <Data_Model File_Name="catalog.xsd" File_Location="schemas/catalog" DB="xnat"/>
-        <Data_Model File_Name="protocolValidation.xsd" File_Location="schemas/validation" DB="xnat"/>
-        <Data_Model File_Name="screeningAssessment.xsd" File_Location="schemas/screening" DB="xnat"/>
-    </Models>
-</Instance_Settings>
diff --git a/src/main/webapp/WEB-INF/conf/xnat-security.xml b/src/main/webapp/WEB-INF/conf/xnat-security.xml
index 408afbb2e10a6b399c48d40656f8af9067904eac..30dabc7727ba6be97d120e9f153787eea90fd9c8 100644
--- a/src/main/webapp/WEB-INF/conf/xnat-security.xml
+++ b/src/main/webapp/WEB-INF/conf/xnat-security.xml
@@ -80,7 +80,7 @@
         <security:custom-filter position="CHANNEL_FILTER" ref="channelProcessingFilter"/>
         <security:custom-filter before="FORM_LOGIN_FILTER" ref="customAuthenticationFilter"/>
         <security:custom-filter after="BASIC_AUTH_FILTER" ref="customBasicAuthenticationFilter"/>
-		<security:custom-filter before="REMEMBER_ME_FILTER" ref="arcSpecFilter"/>
+		<security:custom-filter before="REMEMBER_ME_FILTER" ref="xnatInitCheckFilter"/>
 		<security:custom-filter after="SECURITY_CONTEXT_FILTER" ref="expiredPasswordFilter"/>
         <security:custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" />
         <security:custom-filter position="LOGOUT_FILTER" ref="logoutFilter" />
@@ -218,7 +218,7 @@
         <property name="emailVerificationDestination" value="/data/services/sendEmailVerification"/>
     </bean>
 	
-	<bean id="arcSpecFilter" class="org.nrg.xnat.security.XnatArcSpecFilter">
+	<bean id="xnatInitCheckFilter" class="org.nrg.xnat.security.XnatInitCheckFilter">
         <property name="initializationPath" value="/services/settings/initialize"/>
         <property name="configurationPath" value="/app/template/Configuration.vm"/>
         <property name="nonAdminErrorPath" value="/app/template/Unconfigured.vm"/>