Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/EvaluationServiceImpl.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/EvaluationServiceImpl.java	(revision fa404a571be9a5b680488e86d220dea7c822c160)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/EvaluationServiceImpl.java	(revision 332b3025e0d7e242e4d50f458f775db94bb29536)
@@ -31,4 +31,5 @@
 import java.util.List;
 import java.util.Properties;
+import java.util.regex.Pattern;
 
 import javax.persistence.TypedQuery;
@@ -66,4 +67,50 @@
 	private Session getEntityManager() {
 		return session.getSession();
+	}
+
+	private String prepareQueryStringCurrentTime(String query, String schema) {
+		String queryStringModified = query;
+		queryStringModified = Pattern.compile(Pattern.quote("now()"), Pattern.CASE_INSENSITIVE)
+				.matcher(queryStringModified).replaceAll(schema + ".now()");
+		queryStringModified = Pattern.compile(Pattern.quote("current_date"), Pattern.CASE_INSENSITIVE)
+				.matcher(queryStringModified).replaceAll(schema + ".now()");
+		return queryStringModified;
+	}
+
+	private String prepareQueryStringForViewing(String query, String schema, String evalViewName, String userName) {
+		String queryStringModified = query;
+		queryStringModified = prepareQueryStringCurrentTime(query, schema);
+
+		String evalQueryString = //
+				" select '<span class=\"inSubmission\">In Submission</span>' as WHERE, *   from " //
+						+ " ( ( " + queryStringModified + " ) " //
+						+ " EXCEPT ALL " //
+						+ " ( select * from " + evalViewName + " ) ) eden " //
+						+ " UNION ALL " //
+						+ " select '<span class=\"inCorrectSolution\">In Correct Solution</span>' as WHERE, *  from " //
+						+ " ( ( select * from " + evalViewName + " ) " //
+						+ " EXCEPT ALL " //
+						+ " ( " + queryStringModified + " ) ) dva " //
+						+ " order by 1,2 ";
+		logger.debug("user {} issued evalQueryString for viewing: {}", userName, evalQueryString);
+		return evalQueryString;
+	}
+
+	private String prepareQueryStringForEval(String query, String schema, String evalViewName, String userName) {
+		String queryStringModified = query;
+		queryStringModified = prepareQueryStringCurrentTime(query, schema);
+
+		String evalQueryString = //
+				" select *, 'EDEN' from " //
+						+ " ( ( " + queryStringModified + " ) " //
+						+ " EXCEPT ALL " //
+						+ " ( select * from " + evalViewName + " ) ) eden " //
+						+ " UNION ALL " //
+						+ " select *, 'DVA' from " //
+						+ " ( ( select * from " + evalViewName + " ) " //
+						+ " EXCEPT ALL " //
+						+ " ( " + queryStringModified + " ) ) dva ";
+		logger.debug("user {} issued evalQueryString for evaluation: {}", userName, evalQueryString);
+		return evalQueryString;
 	}
 
@@ -95,16 +142,8 @@
 					connection.setSchema(schema);
 
-					String queryStringManip = queryToRun.replace("now()", schema + ".now()");
-					queryStringManip = queryStringManip.replace("current_date", schema + ".now()");
-
-					String evalQueryString = "select *, 'EDEN' from ( ( " + queryStringManip
-							+ " ) except ( select * from " + evalViewName
-							+ " ) ) eden union select *, 'DVA' from ( ( select * from " + evalViewName + " ) except ( "
-							+ queryStringManip + " ) ) dva ";
-
-					logger.debug("user {} issued evalQueryString: {}", userName, evalQueryString);
+					String evalQueryString = prepareQueryStringForEval(queryToRun, schema, evalViewName, userName);
 
 					PreparedStatement pstmt = connection.prepareStatement(evalQueryString);
-					pstmt.setQueryTimeout(120);
+					pstmt.setQueryTimeout(10 * 60);
 					ResultSet rs = pstmt.executeQuery();
 					if (rs.next()) {
@@ -317,7 +356,7 @@
 		Triplet<List<String>, List<String>, Boolean> rsltsComplex = evalResultsIn(issuedByUserName, s.getSubmission(),
 				tti, tip, tip.getSchemaComplex());
-		logger.info("Reevaluation studentSubmitSolutionId Simple: {} reevaluated as {}", s.getStudentSubmitSolutionId(),
-				rsltsSimple.getThirdItem());
-		logger.info("Reevaluation studentSubmitSolutionId Complex: {} reevaluated as {}",
+		logger.info("Reevaluation Simple studentSubmitSolutionId: {} reevaluated as: {}",
+				s.getStudentSubmitSolutionId(), rsltsSimple.getThirdItem());
+		logger.info("Reevaluation Complex studentSubmitSolutionId: {} reevaluated as: {}",
 				s.getStudentSubmitSolutionId(), rsltsComplex.getThirdItem());
 		if (rsltsSimple.getThirdItem() == true) {
@@ -477,19 +516,8 @@
 					statusCounter = 2;
 
-					String queryStringManip = queryToRun.replace("now()", schema + ".now()");
-					queryStringManip = queryStringManip.replace("current_date", schema + ".now()");
-
-//					String evalQueryString = "((" + queryStringManip + ") except (select * from " + evalViewName
-//							+ ")) union ((select * from " + evalViewName + ") except (" + queryStringManip + "))";
-
-					String evalQueryString = "select '<span class=\"inSubmission\">In Submission</span>' as WHERE, *   from ( ( "
-							+ queryStringManip + " ) except ( select * from " + evalViewName
-							+ " ) ) eden union select '<span class=\"inCorrectSolution\">In Correct Solution</span>' as WHERE, *  from ( ( select * from "
-							+ evalViewName + " ) except ( " + queryStringManip + " ) ) dva order by 1,2";
-
-					logger.debug("user {} issued evalQueryString: {}", userName, evalQueryString);
+					String evalQueryString = prepareQueryStringForViewing(queryToRun, schema, evalViewName, userName);
 
 					PreparedStatement pstmt = connection.prepareStatement(evalQueryString);
-					pstmt.setQueryTimeout(120);
+					pstmt.setQueryTimeout(10 * 60);
 					ResultSet rs = pstmt.executeQuery();
 					boolean isNextRow = rs.next();
@@ -576,6 +604,6 @@
 		int numColumns = rs.getMetaData().getColumnCount();
 
-		logger.debug("Executing Query {} {} {} ", submission.getStudentStartedTest().getStudent().getPerson().getUserName(), queryToRun,
-				numColumns);
+		logger.debug("Executing Query {} {} {} ",
+				submission.getStudentStartedTest().getStudent().getPerson().getUserName(), queryToRun, numColumns);
 
 		while (isNextRow) {
