You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2011/08/09 15:56:04 UTC

svn commit: r1155367 - /db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java

Author: rhillegas
Date: Tue Aug  9 13:56:04 2011
New Revision: 1155367

URL: http://svn.apache.org/viewvc?rev=1155367&view=rev
Log:
DERBY-5328: Improve the re-entrancy of the NetServlet.

Modified:
    db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java

Modified: db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java?rev=1155367&r1=1155366&r2=1155367&view=diff
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/drda/NetServlet.java Tue Aug  9 13:56:04 2011
@@ -51,22 +51,22 @@ public class NetServlet extends HttpServ
 	private final static int MAX_CONNECT_TRYS = 20;
 	private final static String SERVLET_PROP_MESSAGES =  "org.apache.derby.loc.drda.servlet";
 	private final static String SERVLET_ADDRESS = "derbynet";
+	private final static String[] knownLang =
+    { "cs","en","es","de_DE","fr","hu","it", "ja_JP","ko_KR","pl","pt_BR","ru","zh_CN","zh_TW" };
 
-	private String formHeader = null;
+    // set at initialization
 	private String host = "localhost";
-	private int portNumber=1527;
-	private String tracingDirectory;
-	private boolean logStatus= false;	/* Logging off */
-	private boolean traceStatus = false;	/* Tracing off */
-	private String[] knownLang = {"cs","en","es","de_DE","fr","hu","it",
-			"ja_JP","ko_KR","pl","pt_BR","ru","zh_CN","zh_TW"};
-	private String locale;
+	private int portNumber = 1527;
+
+    // can be overridden by trips through doGet()
+	private volatile String tracingDirectory;
+	private volatile boolean logStatus= false;	/* Logging off */
+	private volatile boolean traceStatus = false;	/* Tracing off */
 
 	private final static int NOT_GIVEN = -2;
 	private final static int INVALID = -3;
 
 	private NetworkServerControl server;
-	private PrintWriter out;
 
 	// for doPri block
 	private Runnable service;
@@ -123,7 +123,7 @@ public class NetServlet extends HttpServ
 			if (start)
 			{
                 LocalizedResource langUtil = new LocalizedResource(null,null,SERVLET_PROP_MESSAGES);
-				runServer(langUtil, null, null);
+				runServer(langUtil, null, null, null);
 				return;
 			}
 		}
@@ -150,9 +150,12 @@ public class NetServlet extends HttpServ
 		String setParamMessage;
 		String setParamMessage2;
 		String netParamMessage;
+        String formHeader = null;
+
 		LocalizedResource langUtil;
+        String locale[] = new String[ 1 ];
 		
-		langUtil = getCurrentAppUI(request);
+		langUtil = getCurrentAppUI(request, locale);
 		response.setContentType("text/html; charset=UTF-8");
 		
 		//prevent caching of the servlet since contents can change - beetle 4649
@@ -161,8 +164,8 @@ public class NetServlet extends HttpServ
 		formHeader = "<form enctype='multipart/form-data; charset=UTF-8' action='" +
 			request.getRequestURI() +" '>";
 
-		out = new PrintWriter(new
- 			OutputStreamWriter(response.getOutputStream(), "UTF8"),true);
+        PrintWriter out = new PrintWriter
+            ( new OutputStreamWriter(response.getOutputStream(), "UTF8"),true );
 		
 		//inialize messages
 		logOnMessage = escapeSingleQuotes(langUtil.getTextMessage("SRV_LogOn"));
@@ -180,17 +183,17 @@ public class NetServlet extends HttpServ
 		setParamMessage2 = escapeSingleQuotes(langUtil.getTextMessage("SRV_SetParam2"));
 		netParamMessage = escapeSingleQuotes(langUtil.getTextMessage("SRV_NetParam"));
 
-		printBanner(langUtil);
+		printBanner(langUtil, out);
 		// set up a server we can use
 		if (server == null) {
 			try {
 				server = new NetworkServerControl();
 			}catch (Exception e) {
-				printErrorForm(langUtil, request, e, returnMessage);
+				printErrorForm(langUtil, request, e, returnMessage, out);
 				return;
 			}
 		}
-		server.setClientLocale(locale);
+		server.setClientLocale( locale[ 0 ] );
 		String form = getForm(request);
 		String doAction = getDoAction(request);
 		// if doAction is set, use it to determine form
@@ -213,13 +216,13 @@ public class NetServlet extends HttpServ
 		else if (form.equals(startMessage))
 		{
 			if (!serverStatus)  {
-				runServer(langUtil, request, returnMessage);
+				runServer(langUtil, request, returnMessage, out);
 			}
 		}
 		else if (form.equals(stopMessage))
 		{
 			if (serverStatus)   {
-				shutdownServer(langUtil, request, returnMessage);
+				shutdownServer(langUtil, request, returnMessage, out);
 			}
 			setDefaults();
 					
@@ -248,25 +251,25 @@ public class NetServlet extends HttpServ
 			String traceButton = getTrace(request);
 			if (logButton !=  null && logButton.equals(logOnMessage))
 			{
-				if (logging(langUtil, true, request, returnMessage))
+				if (logging(langUtil, true, request, returnMessage, out))
 					logStatus = true;
 			}
 			if (logButton !=  null && logButton.equals(logOffMessage))
 			{
-				if (logging(langUtil, false, request, returnMessage))
+				if (logging(langUtil, false, request, returnMessage, out))
 					logStatus = false;
 			}
 			if (traceButton !=  null && traceButton.equals(traceOnMessage))
 			{
-				if (traceAll(langUtil, true, request, returnMessage))
+				if (traceAll(langUtil, true, request, returnMessage, out))
 					traceStatus = true;
 			}
 			if (traceButton !=  null && traceButton.equals(traceOffMessage))
 			{
-				if (traceAll(langUtil, false, request, returnMessage))
+				if (traceAll(langUtil, false, request, returnMessage, out))
 					traceStatus = false;
 			}
-			displayCurrentStatus(request, langUtil, returnMessage);
+			displayCurrentStatus(request, langUtil, returnMessage, out);
 			out.println( "<h4>"+langUtil.getTextMessage("SRV_StopButton")+"</h4>" );
 			out.println( "<INPUT type=submit name=form value='"+ stopMessage + "'>" );
 
@@ -300,7 +303,7 @@ public class NetServlet extends HttpServ
 		else if (form.equals(stopMessage))
 		{
 
-			printAsContentHeader(langUtil.getTextMessage("SRV_NotStarted"));
+			printAsContentHeader(langUtil.getTextMessage("SRV_NotStarted"), out);
 			String logButton = getLogging(request);
 			String traceButton =  getTrace(request);
 			if (logButton !=  null && logButton.equals(logOnMessage))
@@ -348,14 +351,14 @@ public class NetServlet extends HttpServ
 						printErrorForm(langUtil, request,
 							langUtil.getTextMessage("SRV_InvalidVal",
 							sessionid, langUtil.getTextMessage("SRV_SessionID")),
-							returnMessage);
+                                       returnMessage, out);
 						return;
 					}
 					Properties p = null;
 					try {
 						p = server.getCurrentProperties();
 					} catch (Exception e) {
-						printErrorForm(langUtil, request, e, returnMessage);
+						printErrorForm(langUtil, request, e, returnMessage, out);
 						return;
 					}
 					// if it's on, turn it off, if its off, turn it on
@@ -364,7 +367,7 @@ public class NetServlet extends HttpServ
 						val = false;
 					else
 						val = true;
-					if (traceSession(langUtil, val, session, request, returnMessage))
+					if (traceSession(langUtil, val, session, request, returnMessage, out))
 					{
 						if (val)
 							out.println( "<h4>"+langUtil.getTextMessage("SRV_StatusTraceNoOn", sessionid)+"</h4>");
@@ -376,7 +379,7 @@ public class NetServlet extends HttpServ
 						
 				}
 			}
-			printAsContentHeader(langUtil.getTextMessage("SRV_TraceSessButton"));
+			printAsContentHeader(langUtil.getTextMessage("SRV_TraceSessButton"), out);
 			out.println( "<h4>" + getHtmlLabelledMessageInstance(langUtil,
 				"SRV_SessionID", "sessionId") + "</h4>");
 			out.println( "<INPUT type=text name=sessionid size=10 maxlength=10 " +
@@ -389,14 +392,14 @@ public class NetServlet extends HttpServ
 		{
 			boolean set = false;
 			String traceDirectory = null;
-			printAsContentHeader(traceDirMessage);
+			printAsContentHeader(traceDirMessage, out);
 			if (doAction != null)
 			{
 				if (doAction.equals(traceDirMessage))
 				{
 					traceDirectory = getParam(request, "tracedirectory");
 					if (traceDirectory(langUtil, traceDirectory, request,
-							returnMessage) )
+                                       returnMessage, out) )
 						set = true;
 					else
 						return;
@@ -432,16 +435,16 @@ public class NetServlet extends HttpServ
 				val = p.getProperty(Property.DRDA_PROP_TIMESLICE);
 				timeSlice= (new Integer(val)).intValue();
 			} catch (Exception e) {
-				printErrorForm(langUtil, request, e, returnMessage);
+				printErrorForm(langUtil, request, e, returnMessage, out);
 				return;
 			}
 			if (doAction != null && doAction.equals(netParamMessage))
 			{
 				int newMaxThreads = getIntParameter(request, "newmaxthreads", 
-					"SRV_NewMaxThreads", langUtil, returnMessage);
+					"SRV_NewMaxThreads", langUtil, returnMessage, out);
 				int newTimeSlice = (newMaxThreads == INVALID) ? NOT_GIVEN :
 					getIntParameter(request, "newtimeslice", "SRV_NewTimeSlice", langUtil, 
-						returnMessage);
+						returnMessage, out);
 				if ((newMaxThreads == INVALID) || (newTimeSlice == INVALID))
 					return;
 				else if (!(newMaxThreads == NOT_GIVEN && newTimeSlice == NOT_GIVEN))
@@ -451,13 +454,13 @@ public class NetServlet extends HttpServ
 					if (newTimeSlice != NOT_GIVEN)
 						timeSlice = newTimeSlice;
 					if (!setNetParam(langUtil, maxThreads, timeSlice, request,
-							returnMessage))
+							returnMessage, out))
 						return;
 				}
 			}
 			
 			out.println(formHeader);
-			printAsContentHeader(netParamMessage);
+			printAsContentHeader(netParamMessage, out);
 			out.println( "<h4>"+langUtil.getTextMessage("SRV_MaxThreads", new Integer(maxThreads).toString()) +"</h4>");
 			out.println( "<h4>"+langUtil.getTextMessage("SRV_TimeSlice", new Integer(timeSlice).toString()) +"</h4>");
 			out.println( "<h4> </h4>");
@@ -533,11 +536,12 @@ public class NetServlet extends HttpServ
 	 * @param localUtil LocalizedResource to use to translate messages
 	 * @param request HttpServetRequest for error forms
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @exception ServletException throws an exception if error in starting the 
 	 * 		Network Server during initialization
 	 */
-	private void runServer(LocalizedResource localUtil, HttpServletRequest request,
-		String returnMessage)
+	private void runServer
+        ( LocalizedResource localUtil, HttpServletRequest request, String returnMessage, PrintWriter out )
 		throws ServletException
 	{
 		service = new Runnable() {
@@ -599,7 +603,7 @@ public class NetServlet extends HttpServ
 				server.trace(true);
 		}catch (Exception e) {
 			if (out != null)
-				printErrorForm(localUtil, request, e, returnMessage);
+				printErrorForm(localUtil, request, e, returnMessage, out);
 			else
 				throw new ServletException(e.getMessage());
 		}
@@ -611,11 +615,18 @@ public class NetServlet extends HttpServ
 	 * @param request HttpServetRequest for error forms
 	 * @param e		Exception to be displayed
 	 * @param returnMessage	localized continue message for continue button on error form
+	 * @param out Form PrintWriter
 	 */
-	private void printErrorForm(LocalizedResource localUtil, HttpServletRequest request,
-		Exception e, String returnMessage)
+	private void printErrorForm
+        (
+         LocalizedResource localUtil,
+         HttpServletRequest request,
+         Exception e,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
-		printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError"));
+		printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError"), out);
 		out.println( "<h4>"+localUtil.getTextMessage("SRV_Message", e.getMessage()) + "</h4>" );
 		out.println( "<INPUT type=submit name=form value='"+returnMessage+"'>" );
 		out.println( "</html>" );
@@ -627,12 +638,19 @@ public class NetServlet extends HttpServ
 	 * @param localUtil	LocalizedResource to use to translate messages
 	 * @param request HttpServetRequest for error forms
 	 * @param msg	String to be displayed
+	 * @param out Form PrintWriter
 	 * @param returnMessage	localized continue message for continue button on error form
 	 */
-	private void printErrorForm(LocalizedResource localUtil, HttpServletRequest request,
-		String msg, String returnMessage)
+	private void printErrorForm
+        (
+         LocalizedResource localUtil,
+         HttpServletRequest request,
+         String msg,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
-		printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError"));
+		printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError"), out);
 		out.println( "<h4>"+localUtil.getTextMessage("SRV_Message", msg) + "</h4>" );
 		out.println( "<INPUT type=submit name=form value='"+returnMessage+"'>" );
 		out.println( "</html>" ); 
@@ -644,13 +662,19 @@ public class NetServlet extends HttpServ
 	 * @param request	HttpServetRequest for  forms
 	 * @param localUtil		LocalizedResource to use for localizing messages
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 */
-	private void displayCurrentStatus(HttpServletRequest request,
-		LocalizedResource localUtil, String returnMessage)
+	private void displayCurrentStatus
+        (
+         HttpServletRequest request,
+         LocalizedResource localUtil,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		try {
 
-			printAsContentHeader(localUtil.getTextMessage("SRV_Started"));
+			printAsContentHeader(localUtil.getTextMessage("SRV_Started"), out);
 			Properties p = server.getCurrentProperties();
 			String val = p.getProperty(Property.DRDA_PROP_LOGCONNECTIONS);
 			if (val.equals("true"))
@@ -675,7 +699,7 @@ public class NetServlet extends HttpServ
 			
 		}
 		catch (Exception e) {
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 	}
 	/**
@@ -698,10 +722,16 @@ public class NetServlet extends HttpServ
 	 * @param localUtil	LocalizedResource to use to translate messages
 	 * @param request HttpServetRequest for  forms
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean shutdownServer(LocalizedResource localUtil,
-		HttpServletRequest request, String returnMessage)
+	private boolean shutdownServer
+        (
+         LocalizedResource localUtil,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 		try {
@@ -709,7 +739,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -719,10 +749,17 @@ public class NetServlet extends HttpServ
 	 * @param localUtil	LocalizedResource to use to translate messages
 	 * @param request HttpServetRequest for  forms
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean logging(LocalizedResource localUtil, boolean val,
-		HttpServletRequest request, String returnMessage)
+	private boolean logging
+        (
+         LocalizedResource localUtil,
+         boolean val,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 		try {
@@ -730,7 +767,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -741,10 +778,17 @@ public class NetServlet extends HttpServ
 	 * @param val	if true, turn tracing on, if false turn it off
 	 * @param request HttpServetRequest for  forms
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean traceAll(LocalizedResource localUtil, boolean val,
-		HttpServletRequest request, String returnMessage)
+	private boolean traceAll
+        (
+         LocalizedResource localUtil,
+         boolean val,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 		try {
@@ -752,7 +796,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -764,10 +808,18 @@ public class NetServlet extends HttpServ
 	 * @param session	session to trace
 	 * @param request HttpServetRequest for  forms
 	 * @param returnMessage	localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean traceSession(LocalizedResource localUtil, boolean val, int session,
-		HttpServletRequest request, String returnMessage)
+	private boolean traceSession
+        (
+         LocalizedResource localUtil,
+         boolean val,
+         int session,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 		try {
@@ -775,7 +827,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -786,19 +838,25 @@ public class NetServlet extends HttpServ
 	 * @param localUtil	LocalizedResource to use to translate messages
 	 * @param traceDirectory	directory for trace files
 	 * @param request 			HttpServetRequest for  forms
-	 * @param returnMessage		localized continue message for continue 
-	 *							button on error form	
+	 * @param returnMessage		localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean traceDirectory(LocalizedResource localUtil, String traceDirectory,
-		HttpServletRequest request, String returnMessage)
+	private boolean traceDirectory
+        (
+         LocalizedResource localUtil,
+         String traceDirectory,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 
 		if ((traceDirectory == null) || traceDirectory.equals("")) {
 			printErrorForm(localUtil, request,
 				localUtil.getTextMessage("SRV_MissingParam",
-				localUtil.getTextMessage("SRV_TraceDir")), returnMessage);
+                                         localUtil.getTextMessage("SRV_TraceDir")), returnMessage, out);
 
 			return retval;
 		}
@@ -809,7 +867,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -821,12 +879,19 @@ public class NetServlet extends HttpServ
 	 * @param max				maximum number of threads
 	 * @param slice				time slice for each connection
 	 * @param request 			HttpServetRequest for  forms
-	 * @param returnMessage		localized continue message for continue 
-	 *							button on error form	
+	 * @param returnMessage		localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 * @return true if succeeded; false; otherwise
 	 */
-	private boolean setNetParam(LocalizedResource localUtil, int max, int slice,
-		HttpServletRequest request, String returnMessage)
+	private boolean setNetParam
+        (
+         LocalizedResource localUtil,
+         int max,
+         int slice,
+         HttpServletRequest request,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		boolean retval = false;
 
@@ -836,7 +901,7 @@ public class NetServlet extends HttpServ
 			retval = true;
 		} catch (Exception e) 
 		{
-			printErrorForm(localUtil, request, e, returnMessage);
+			printErrorForm(localUtil, request, e, returnMessage, out);
 		}
 		return retval;
 	}
@@ -857,11 +922,18 @@ public class NetServlet extends HttpServ
 	 * @param name				parameter name
 	 * @param fieldKey			Key for the name of the field we're reading.
 	 * @param localUtil				LocalizedResource to use in localizing messages
-	 * @param returnMessage		localized continue message for continue 
-	 *							button on error form	
+	 * @param returnMessage		localized continue message for continue button on error form	
+	 * @param out Form PrintWriter
 	 */
-	private int getIntParameter(HttpServletRequest request,
-			String name, String fieldKey, LocalizedResource localUtil, String returnMessage)
+	private int getIntParameter
+        (
+         HttpServletRequest request,
+         String name,
+         String fieldKey,
+         LocalizedResource localUtil,
+         String returnMessage,
+         PrintWriter out
+         )
 	{
 		String val = request.getParameter(name);
 		int retval;
@@ -871,13 +943,13 @@ public class NetServlet extends HttpServ
 		 	retval = (new Integer(val)).intValue();
 		} catch (Exception e) {
 			printErrorForm(localUtil, request,localUtil.getTextMessage("SRV_InvalidVal",
-				val, localUtil.getTextMessage(fieldKey)), returnMessage);
+                val, localUtil.getTextMessage(fieldKey)), returnMessage, out);
 			return INVALID;
 		}
 		if (retval < 0) {
 		// negative integers not allowed for the parameters we're getting.
 			printErrorForm(localUtil, request, localUtil.getTextMessage("SRV_InvalidVal",
-				val, localUtil.getTextMessage(fieldKey)), returnMessage);
+                 val, localUtil.getTextMessage(fieldKey)), returnMessage, out);
 			return INVALID;
 		}
 		return retval;
@@ -885,7 +957,7 @@ public class NetServlet extends HttpServ
 	/**
 	 * Print Derby Network Server banner
 	 */
-	private void printBanner(LocalizedResource localUtil)
+	private void printBanner(LocalizedResource localUtil, PrintWriter out)
 	{
 		out.println("<a href=\"#navskip\">[ " +
 		localUtil.getTextMessage("SRV_SkipToContent") + " ]</a>");
@@ -905,15 +977,16 @@ public class NetServlet extends HttpServ
 	 *		English otherwise if browsers preferences can't be found
 	 *
 	 * @param request 			HttpServetRequest for forms
+	 * @param locale                Name of locale (return arg)
 	 * @return the appUI which fits the browsers preferences
 	 */
-	private LocalizedResource getCurrentAppUI(HttpServletRequest request)
+	private LocalizedResource getCurrentAppUI(HttpServletRequest request, String[] locale )
 	{
 		LocalizedResource localUtil;
 		String acceptLanguage = request.getHeader("Accept-Language");
 		localUtil = new LocalizedResource(null,null,SERVLET_PROP_MESSAGES);
 		// if no language specified use one set by derby.locale, derby.codeset
-		locale = null;
+		locale[ 0 ] = null;
 		if (acceptLanguage == null)
 		{
 			return localUtil;
@@ -931,7 +1004,7 @@ public class NetServlet extends HttpServ
 			{
 				localUtil.init(null, lang, SERVLET_PROP_MESSAGES);
 				// locale will be passed to server, server routines will get set appropriately
-				locale = lang;
+				locale[ 0 ] = lang;
 				return localUtil;
 			}
 		}
@@ -1016,8 +1089,9 @@ public class NetServlet extends HttpServ
 	/**
 	 * Print the received string as a header.
 	 * @param str The string to be printed as a header.
+	 * @param out Form PrintWriter
 	 */
-	private void printAsContentHeader(String str) {
+	private void printAsContentHeader(String str, PrintWriter out) {
 
 		out.println("<a name=\"navskip\"></a><h2>" + str + "</h2>");
 		return;