Index: /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java
===================================================================
--- /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java	(revision 32418)
+++ /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java	(revision 32419)
@@ -99,8 +99,6 @@
 		    //String port = globalProperties.getProperty("tomcat.port.http", "8383");
 		    //String protocol = globalProperties.getProperty("server.protocol", "http");
-		    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties);
-		    if(protocolPortProps.hadError()) {
-			throw new Exception("**** ERROR with port and/or protocol in build.properties:\n" + protocolPortProps.getErrorMsg());
-		    }
+		    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties); // can throw Exception
+		    
 		    String protocol = protocolPortProps.getProtocol();
 		    String port = protocolPortProps.getPort();
@@ -126,4 +124,9 @@
 		}
 		
+		if(solr_servlet_base_url == null) {
+		    logger.error("Unable to configure GS2SolrSearch - solr_servlet_base_url is null because of issues with port/protocol in global.properties");
+		    return false;
+		}
+		    
 		// Setting up facets
 
Index: /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java
===================================================================
--- /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java	(revision 32418)
+++ /gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java	(revision 32419)
@@ -49,8 +49,5 @@
 	    //String port = globalProperties.getProperty("tomcat.port.http", "8383");
 	    //String protocol = globalProperties.getProperty("server.protocol", "http");
-	    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties);
-	    if(protocolPortProps.hadError()) {
-		throw new Exception("**** ERROR with port and/or protocol in build.properties:\n" + protocolPortProps.getErrorMsg());
-	    }
+	    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties); // can throw an Exception	    
 	    String protocol = protocolPortProps.getProtocol();
 	    String port = protocolPortProps.getPort();
@@ -88,5 +85,9 @@
 	    return false;
 	}
-
+	
+	if(solr_servlet_base_url == null) {
+	    logger.error("Unable to configure SolrSearch - solr_servlet_base_url is null because of issues with port/protocol in global.properties");
+	    return false;
+	}
 	// initialize required number of SolrCores based on values
 	// in 'index_ids' that are set by LuceneSearch::configure()
Index: /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/FedoraServiceProxy.java
===================================================================
--- /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/FedoraServiceProxy.java	(revision 32418)
+++ /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/FedoraServiceProxy.java	(revision 32419)
@@ -142,10 +142,7 @@
 	    Properties globalProperties = new Properties();
 	    globalProperties.load(Class.forName("org.greenstone.util.GlobalProperties").getClassLoader().getResourceAsStream("global.properties"));
+	    
+	    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties); // can throw Exception
 	    String host = globalProperties.getProperty("tomcat.server", "localhost");
-	    ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(globalProperties);
-	    if(protocolPortProps.hadError()) {
-		logger.error("Error with port/protocol in global.properties: " + protocolPortProps.getErrorMsg());
-		return false; // configure has failed
-	    }
 	    String protocol = protocolPortProps.getProtocol();
 	    String port = protocolPortProps.getPort();
@@ -185,5 +182,5 @@
 	} catch(Exception e) {
 	    logger.error("Error instantiating the interface to the Fedora Repository:\n", e); // second parameter prints e's stacktrace
-	    return false;
+	    return false; // configure has failed
 	} 
 
Index: /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/ServletRealmCheck.java
===================================================================
--- /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/ServletRealmCheck.java	(revision 32418)
+++ /main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/ServletRealmCheck.java	(revision 32419)
@@ -88,11 +88,5 @@
 		// get the property value and print it out
 		String servername = buildProps.getProperty("tomcat.server");
-		//String protocol = buildProps.getProperty("server.protocol", "http");
-		//String port = buildProps.getProperty("tomcat.port"+protocol, "8383");
-		
-		ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(buildProps);
-		if(protocolPortProps.hadError()) {
-		    throw new Exception("**** ERROR with port and/or protocol in build.properties:\n" + protocolPortProps.getErrorMsg());
-		}
+		ProtocolPortProperties protocolPortProps = new ProtocolPortProperties(buildProps); // can throw Exception
 		String protocol = protocolPortProps.getProtocol();
 		String port = protocolPortProps.getPort();
Index: /main/trunk/greenstone3/src/java/org/greenstone/server/Server3.java
===================================================================
--- /main/trunk/greenstone3/src/java/org/greenstone/server/Server3.java	(revision 32418)
+++ /main/trunk/greenstone3/src/java/org/greenstone/server/Server3.java	(revision 32419)
@@ -25,6 +25,7 @@
 		// config properties are loaded into the config_properties object
 		// now test the port and protocol values are sane or exit.
-		protocolPortProps = new ProtocolPortProperties(config_properties);
-		if(protocolPortProps.hadError()) {
+		try {
+		    protocolPortProps = new ProtocolPortProperties(config_properties);
+		} catch(Exception e) {
 		    String errorMsg = "Error with port/protocol in " + config_properties_file + ": " + protocolPortProps.getErrorMsg();
 
@@ -34,5 +35,5 @@
 		    // If error, then quit this app as soon as possible
 		    System.exit(-1);
-		}	
+		}
 		
 		Property = protocolPortProps.legacyMode ? new Server3Property() : new Server3Property(protocolPortProps.getProtocol());
Index: /main/trunk/greenstone3/src/java/org/greenstone/util/ProtocolPortProperties.java
===================================================================
--- /main/trunk/greenstone3/src/java/org/greenstone/util/ProtocolPortProperties.java	(revision 32418)
+++ /main/trunk/greenstone3/src/java/org/greenstone/util/ProtocolPortProperties.java	(revision 32419)
@@ -66,9 +66,9 @@
     // Won't attempt to recover on error.
     // This means on error, port etc values will be invalid
-    public ProtocolPortProperties(Properties props) {
+    public ProtocolPortProperties(Properties props) throws Exception {
 	this(props, false);
     }
 
-    public ProtocolPortProperties(Properties props, boolean recover)
+    public ProtocolPortProperties(Properties props, boolean recover) throws Exception
     {
 	StringBuffer msg = new StringBuffer();
@@ -215,4 +215,8 @@
 	
 	errorMsg = msg.toString();
+
+	if(!recover && errorCode != ALL_CORRECT) {
+	    throw new Exception(errorMsg);
+	}
     }
     
