ASF Bugzilla – Attachment 25582 Details for
Bug 49426
Manager app wrongly localized
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Patch (with unit test) fixing the problem for the ManagerServlet
patchManagerLocale.txt (text/plain), 32.35 KB, created by
Marc Guillemot
on 2010-06-11 03:26:07 UTC
(
hide
)
Description:
Patch (with unit test) fixing the problem for the ManagerServlet
Filename:
MIME Type:
Creator:
Marc Guillemot
Created:
2010-06-11 03:26:07 UTC
Size:
32.35 KB
patch
obsolete
>Index: java/org/apache/catalina/manager/HTMLManagerServlet.java >=================================================================== >--- java/org/apache/catalina/manager/HTMLManagerServlet.java (revision 953579) >+++ java/org/apache/catalina/manager/HTMLManagerServlet.java (working copy) >@@ -137,7 +137,7 @@ > return; > } catch (Exception e) { > log("HTMLManagerServlet.sessions[" + path + "]", e); >- message = sm.getString("managerServlet.exception", >+ message = getMessage("managerServlet.exception", > e.toString()); > } > } else if (command.equals("/upload") || command.equals("/deploy") || >@@ -145,10 +145,10 @@ > command.equals("/expire") || command.equals("/start") || > command.equals("/stop")) { > message = >- sm.getString("managerServlet.postCommand", command); >+ getMessage("managerServlet.postCommand", command); > } else { > message = >- sm.getString("managerServlet.unknownCommand", command); >+ getMessage("managerServlet.unknownCommand", command); > } > > list(request, response, message); >@@ -189,14 +189,14 @@ > HttpSession session = request.getSession(); > String sessionNonce = (String) session.getAttribute(NONCE_SESSION); > if (sessionNonce == null) { >- message = sm.getString("htmlManagerServlet.noNonce", command); >+ message = getMessage("htmlManagerServlet.noNonce", command); > // Reset the command > command = null; > } else { > if (!sessionNonce.equals(requestNonce)) { > // Nonce mis-match. > message = >- sm.getString("htmlManagerServlet.nonceMismatch", command); >+ getMessage("htmlManagerServlet.nonceMismatch", command); > // Reset the command > command = null; > } >@@ -284,7 +284,7 @@ > while (true) { > if (warPart == null) { > message = >- sm.getString("htmlManagerServlet.deployUploadNoFile"); >+ getMessage("htmlManagerServlet.deployUploadNoFile"); > break; > } > filename = >Index: java/org/apache/catalina/manager/ManagerServlet.java >=================================================================== >--- java/org/apache/catalina/manager/ManagerServlet.java (revision 953579) >+++ java/org/apache/catalina/manager/ManagerServlet.java (working copy) >@@ -25,7 +25,9 @@ > import java.io.FileOutputStream; > import java.io.IOException; > import java.io.PrintWriter; >+import java.text.MessageFormat; > import java.util.Iterator; >+import java.util.ResourceBundle; > > import javax.management.MBeanServer; > import javax.management.ObjectName; >@@ -57,8 +59,8 @@ > import org.apache.catalina.util.RequestUtil; > import org.apache.catalina.util.ServerInfo; > import org.apache.tomcat.util.ExceptionUtils; >-import org.apache.tomcat.util.res.StringManager; > import org.apache.tomcat.util.modeler.Registry; >+import org.apache.tomcat.util.res.StringManager; > > > /** >@@ -237,6 +239,7 @@ > protected static final StringManager sm = > StringManager.getManager(Constants.Package); > >+ private ResourceBundle bundle; > > /** > * The Wrapper container associated with this servlet. >@@ -256,6 +259,19 @@ > > } > >+ protected String getMessage(final String key, final Object... args) { >+ String value = bundle.getString(key); >+ if (value == null) { >+ value = key; >+ } >+ if (args.length == 0) { >+ return value; >+ } >+ >+ final MessageFormat mf = new MessageFormat(value); >+ mf.setLocale(bundle.getLocale()); >+ return mf.format(args, new StringBuffer(), null).toString(); >+ } > > /** > * Set the Wrapper with which we are associated. >@@ -301,6 +317,19 @@ > } > > >+ @Override >+ protected final void service(HttpServletRequest req, HttpServletResponse resp) >+ throws ServletException, IOException { >+ >+ bundle = ResourceBundle.getBundle(Constants.Package + ".LocalStrings", req.getLocale()); >+ try { >+ super.service(req, resp); >+ } >+ finally { >+ bundle = null; >+ } >+ } >+ > /** > * Process a GET request for the specified resource. > * >@@ -332,11 +361,12 @@ > > // Prepare our output writer to generate the response message > response.setContentType("text/plain; charset=" + Constants.CHARSET); >+ response.setCharacterEncoding(Constants.CHARSET); > PrintWriter writer = response.getWriter(); > > // Process the requested command (note - "/deploy" is not listed here) > if (command == null) { >- writer.println(sm.getString("managerServlet.noCommand")); >+ writer.println(getMessage("managerServlet.noCommand")); > } else if (command.equals("/deploy")) { > if (war != null || config != null) { > deploy(writer, config, path, war, update); >@@ -368,7 +398,7 @@ > } else if (command.equals("/findleaks")) { > findleaks(writer); > } else { >- writer.println(sm.getString("managerServlet.unknownCommand", >+ writer.println(getMessage("managerServlet.unknownCommand", > command)); > } > >@@ -411,11 +441,11 @@ > > // Process the requested command > if (command == null) { >- writer.println(sm.getString("managerServlet.noCommand")); >+ writer.println(getMessage("managerServlet.noCommand")); > } else if (command.equals("/deploy")) { > deploy(writer, path, tag, update, request); > } else { >- writer.println(sm.getString("managerServlet.unknownCommand", >+ writer.println(getMessage("managerServlet.unknownCommand", > command)); > } > >@@ -505,7 +535,7 @@ > protected void findleaks(PrintWriter writer) { > > if (!(host instanceof StandardHost)) { >- writer.println(sm.getString("managerServlet.findleaksFail")); >+ writer.println(getMessage("managerServlet.findleaksFail")); > return; > } > >@@ -531,17 +561,17 @@ > Server server = ((Engine)host.getParent()).getService().getServer(); > > if (!(server instanceof StandardServer)) { >- writer.println(sm.getString("managerServlet.saveFail", server)); >+ writer.println(getMessage("managerServlet.saveFail", server)); > return; > } > > if ((path == null) || path.length() == 0 || !path.startsWith("/")) { > try { > ((StandardServer) server).storeConfig(); >- writer.println(sm.getString("managerServlet.saved")); >+ writer.println(getMessage("managerServlet.saved")); > } catch (Exception e) { > log("managerServlet.storeConfig", e); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > e.toString())); > return; > } >@@ -552,16 +582,16 @@ > } > Context context = (Context) host.findChild(contextPath); > if (context == null) { >- writer.println(sm.getString("managerServlet.noContext", path)); >+ writer.println(getMessage("managerServlet.noContext", path)); > return; > } > try { > ((StandardServer) server).storeContext(context); >- writer.println(sm.getString("managerServlet.savedContext", >+ writer.println(getMessage("managerServlet.savedContext", > path)); > } catch (Exception e) { > log("managerServlet.save[" + path + "]", e); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > e.toString())); > return; > } >@@ -589,7 +619,7 @@ > > // Validate the requested context path > if ((path == null) || path.length() == 0 || !path.startsWith("/")) { >- writer.println(sm.getString("managerServlet.invalidPath", path)); >+ writer.println(getMessage("managerServlet.invalidPath", path)); > return; > } > String displayPath = path; >@@ -607,7 +637,7 @@ > } > if (context != null) { > writer.println >- (sm.getString("managerServlet.alreadyContext", >+ (getMessage("managerServlet.alreadyContext", > displayPath)); > return; > } >@@ -648,17 +678,17 @@ > } > } catch (Exception e) { > log("managerServlet.check[" + displayPath + "]", e); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > e.toString())); > return; > } > > context = (Context) host.findChild(path); > if (context != null && context.getConfigured()) { >- writer.println(sm.getString("managerServlet.deployed", displayPath)); >+ writer.println(getMessage("managerServlet.deployed", displayPath)); > } else { > // Something failed >- writer.println(sm.getString("managerServlet.deployFailed", displayPath)); >+ writer.println(getMessage("managerServlet.deployFailed", displayPath)); > } > > } >@@ -676,7 +706,7 @@ > > // Validate the requested context path > if ((path == null) || path.length() == 0 || !path.startsWith("/")) { >- writer.println(sm.getString("managerServlet.invalidPath", path)); >+ writer.println(getMessage("managerServlet.invalidPath", path)); > return; > } > String displayPath = path; >@@ -712,17 +742,17 @@ > } > } catch (Exception e) { > log("managerServlet.check[" + displayPath + "]", e); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > e.toString())); > return; > } > > context = (Context) host.findChild(path); > if (context != null && context.getConfigured()) { >- writer.println(sm.getString("managerServlet.deployed", displayPath)); >+ writer.println(getMessage("managerServlet.deployed", displayPath)); > } else { > // Something failed >- writer.println(sm.getString("managerServlet.deployFailed", displayPath)); >+ writer.println(getMessage("managerServlet.deployFailed", displayPath)); > } > > } >@@ -768,7 +798,7 @@ > } > > if (path == null || path.length() == 0 || !path.startsWith("/")) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -787,7 +817,7 @@ > } > if (context != null) { > writer.println >- (sm.getString("managerServlet.alreadyContext", >+ (getMessage("managerServlet.alreadyContext", > displayPath)); > return; > } >@@ -825,16 +855,16 @@ > } > context = (Context) host.findChild(path); > if (context != null && context.getConfigured() && context.getAvailable()) { >- writer.println(sm.getString("managerServlet.deployed", displayPath)); >+ writer.println(getMessage("managerServlet.deployed", displayPath)); > } else if (context!=null && !context.getAvailable()) { >- writer.println(sm.getString("managerServlet.deployedButNotStarted", displayPath)); >+ writer.println(getMessage("managerServlet.deployedButNotStarted", displayPath)); > } else { > // Something failed >- writer.println(sm.getString("managerServlet.deployFailed", displayPath)); >+ writer.println(getMessage("managerServlet.deployFailed", displayPath)); > } > } catch (Throwable t) { > log("ManagerServlet.install[" + displayPath + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -852,7 +882,7 @@ > log("list: Listing contexts for virtual host '" + > host.getName() + "'"); > >- writer.println(sm.getString("managerServlet.listed", >+ writer.println(getMessage("managerServlet.listed", > host.getName())); > Container[] contexts = host.findChildren(); > for (int i = 0; i < contexts.length; i++) { >@@ -862,13 +892,13 @@ > if( displayPath.equals("") ) > displayPath = "/"; > if (context.getAvailable()) { >- writer.println(sm.getString("managerServlet.listitem", >+ writer.println(getMessage("managerServlet.listitem", > displayPath, > "running", > "" + context.getManager().findSessions().length, > context.getDocBase())); > } else { >- writer.println(sm.getString("managerServlet.listitem", >+ writer.println(getMessage("managerServlet.listitem", > displayPath, > "stopped", > "0", >@@ -891,7 +921,7 @@ > log("restart: Reloading web application at '" + path + "'"); > > if ((path == null) || (!path.startsWith("/") && path.equals(""))) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -902,22 +932,22 @@ > try { > Context context = (Context) host.findChild(path); > if (context == null) { >- writer.println(sm.getString >+ writer.println(getMessage > ("managerServlet.noContext", > RequestUtil.filter(displayPath))); > return; > } > // It isn't possible for the manager to reload itself > if (context.getPath().equals(this.context.getPath())) { >- writer.println(sm.getString("managerServlet.noSelf")); >+ writer.println(getMessage("managerServlet.noSelf")); > return; > } > context.reload(); > writer.println >- (sm.getString("managerServlet.reloaded", displayPath)); >+ (getMessage("managerServlet.reloaded", displayPath)); > } catch (Throwable t) { > log("ManagerServlet.reload[" + displayPath + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -942,16 +972,16 @@ > > // Is the global JNDI resources context available? > if (global == null) { >- writer.println(sm.getString("managerServlet.noGlobal")); >+ writer.println(getMessage("managerServlet.noGlobal")); > return; > } > > // Enumerate the global JNDI resources of the requested type > if (type != null) { >- writer.println(sm.getString("managerServlet.resourcesType", >+ writer.println(getMessage("managerServlet.resourcesType", > type)); > } else { >- writer.println(sm.getString("managerServlet.resourcesAll")); >+ writer.println(getMessage("managerServlet.resourcesAll")); > } > > Class<?> clazz = null; >@@ -961,7 +991,7 @@ > } > } catch (Throwable t) { > log("ManagerServlet.resources[" + type + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > return; > } >@@ -1000,7 +1030,7 @@ > } > } catch (Throwable t) { > log("ManagerServlet.resources[" + type + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -1028,17 +1058,17 @@ > InitialContext ic = new InitialContext(); > database = (UserDatabase) ic.lookup("java:comp/env/users"); > } catch (NamingException e) { >- writer.println(sm.getString("managerServlet.userDatabaseError")); >+ writer.println(getMessage("managerServlet.userDatabaseError")); > log("java:comp/env/users", e); > return; > } > if (database == null) { >- writer.println(sm.getString("managerServlet.userDatabaseMissing")); >+ writer.println(getMessage("managerServlet.userDatabaseMissing")); > return; > } > > // Enumerate the available roles >- writer.println(sm.getString("managerServlet.rolesList")); >+ writer.println(getMessage("managerServlet.rolesList")); > Iterator<Role> roles = database.getRoles(); > if (roles != null) { > while (roles.hasNext()) { >@@ -1081,7 +1111,7 @@ > writer.println(props.toString()); > } catch (Throwable t) { > getServletContext().log("ManagerServlet.serverinfo",t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > } >@@ -1104,7 +1134,7 @@ > } > > if ((path == null) || (!path.startsWith("/") && path.equals(""))) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -1114,13 +1144,13 @@ > try { > Context context = (Context) host.findChild(path); > if (context == null) { >- writer.println(sm.getString("managerServlet.noContext", >+ writer.println(getMessage("managerServlet.noContext", > RequestUtil.filter(displayPath))); > return; > } > Manager manager = context.getManager() ; > if(manager == null) { >- writer.println(sm.getString("managerServlet.noManager", >+ writer.println(getMessage("managerServlet.noManager", > RequestUtil.filter(displayPath))); > return; > } >@@ -1135,8 +1165,8 @@ > if ( histoInterval * maxCount < maxInactiveInterval ) > maxCount++; > >- writer.println(sm.getString("managerServlet.sessions", displayPath)); >- writer.println(sm.getString("managerServlet.sessiondefaultmax", >+ writer.println(getMessage("managerServlet.sessions", displayPath)); >+ writer.println(getMessage("managerServlet.sessiondefaultmax", > "" + maxInactiveInterval)); > Session [] sessions = manager.findSessions(); > int [] timeout = new int[maxCount]; >@@ -1158,27 +1188,27 @@ > timeout[time]++; > } > if (timeout[0] > 0) >- writer.println(sm.getString("managerServlet.sessiontimeout", >+ writer.println(getMessage("managerServlet.sessiontimeout", > "<" + histoInterval, "" + timeout[0])); > for (int i = 1; i < maxCount-1; i++) { > if (timeout[i] > 0) >- writer.println(sm.getString("managerServlet.sessiontimeout", >+ writer.println(getMessage("managerServlet.sessiontimeout", > "" + (i)*histoInterval + " - <" + (i+1)*histoInterval, > "" + timeout[i])); > } > if (timeout[maxCount-1] > 0) >- writer.println(sm.getString("managerServlet.sessiontimeout", >+ writer.println(getMessage("managerServlet.sessiontimeout", > ">=" + maxCount*histoInterval, > "" + timeout[maxCount-1])); > if (notimeout > 0) >- writer.println(sm.getString("managerServlet.sessiontimeout.unlimited", >+ writer.println(getMessage("managerServlet.sessiontimeout.unlimited", > "" + notimeout)); > if (idle >= 0) >- writer.println(sm.getString("managerServlet.sessiontimeout.expired", >+ writer.println(getMessage("managerServlet.sessiontimeout.expired", > "" + idle,"" + expired)); > } catch (Throwable t) { > log("ManagerServlet.sessions[" + displayPath + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -1230,7 +1260,7 @@ > log("start: Starting web application at '" + path + "'"); > > if ((path == null) || (!path.startsWith("/") && path.equals(""))) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -1241,23 +1271,23 @@ > try { > Context context = (Context) host.findChild(path); > if (context == null) { >- writer.println(sm.getString("managerServlet.noContext", >+ writer.println(getMessage("managerServlet.noContext", > RequestUtil.filter(displayPath))); > return; > } > context.start(); > if (context.getAvailable()) > writer.println >- (sm.getString("managerServlet.started", displayPath)); >+ (getMessage("managerServlet.started", displayPath)); > else > writer.println >- (sm.getString("managerServlet.startFailed", displayPath)); >+ (getMessage("managerServlet.startFailed", displayPath)); > } catch (Throwable t) { > getServletContext().log >- (sm.getString("managerServlet.startFailed", displayPath), t); >+ (getMessage("managerServlet.startFailed", displayPath), t); > writer.println >- (sm.getString("managerServlet.startFailed", displayPath)); >- writer.println(sm.getString("managerServlet.exception", >+ (getMessage("managerServlet.startFailed", displayPath)); >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -1276,7 +1306,7 @@ > log("stop: Stopping web application at '" + path + "'"); > > if ((path == null) || (!path.startsWith("/") && path.equals(""))) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -1287,20 +1317,20 @@ > try { > Context context = (Context) host.findChild(path); > if (context == null) { >- writer.println(sm.getString("managerServlet.noContext", >+ writer.println(getMessage("managerServlet.noContext", > RequestUtil.filter(displayPath))); > return; > } > // It isn't possible for the manager to stop itself > if (context.getPath().equals(this.context.getPath())) { >- writer.println(sm.getString("managerServlet.noSelf")); >+ writer.println(getMessage("managerServlet.noSelf")); > return; > } > context.stop(); >- writer.println(sm.getString("managerServlet.stopped", displayPath)); >+ writer.println(getMessage("managerServlet.stopped", displayPath)); > } catch (Throwable t) { > log("ManagerServlet.stop[" + displayPath + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >@@ -1319,7 +1349,7 @@ > log("undeploy: Undeploying web application at '" + path + "'"); > > if ((path == null) || (!path.startsWith("/") && path.equals(""))) { >- writer.println(sm.getString("managerServlet.invalidPath", >+ writer.println(getMessage("managerServlet.invalidPath", > RequestUtil.filter(path))); > return; > } >@@ -1332,13 +1362,13 @@ > // Validate the Context of the specified application > Context context = (Context) host.findChild(path); > if (context == null) { >- writer.println(sm.getString("managerServlet.noContext", >+ writer.println(getMessage("managerServlet.noContext", > RequestUtil.filter(displayPath))); > return; > } > > if (!isDeployed(path)) { >- writer.println(sm.getString("managerServlet.notDeployed", >+ writer.println(getMessage("managerServlet.notDeployed", > RequestUtil.filter(displayPath))); > return; > } >@@ -1371,11 +1401,11 @@ > removeServiced(path.replace('#','/')); > } > } >- writer.println(sm.getString("managerServlet.undeployed", >+ writer.println(getMessage("managerServlet.undeployed", > displayPath)); > } catch (Throwable t) { > log("ManagerServlet.undeploy[" + displayPath + "]", t); >- writer.println(sm.getString("managerServlet.exception", >+ writer.println(getMessage("managerServlet.exception", > t.toString())); > } > >Index: test/org/apache/catalina/manager/TestManagerServlet.java >=================================================================== >--- test/org/apache/catalina/manager/TestManagerServlet.java (revision 0) >+++ test/org/apache/catalina/manager/TestManagerServlet.java (revision 0) >@@ -0,0 +1,81 @@ >+/* >+ * Licensed to the Apache Software Foundation (ASF) under one or more >+ * contributor license agreements. See the NOTICE file distributed with >+ * this work for additional information regarding copyright ownership. >+ * The ASF licenses this file to You under the Apache License, Version 2.0 >+ * (the "License"); you may not use this file except in compliance with >+ * the License. You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ */ >+package org.apache.catalina.manager; >+ >+import java.io.IOException; >+import java.util.HashMap; >+import java.util.List; >+import java.util.Locale; >+import java.util.Map; >+ >+import org.apache.catalina.Context; >+import org.apache.catalina.startup.Tomcat; >+import org.apache.catalina.startup.TomcatBaseTest; >+import org.apache.tomcat.util.buf.ByteChunk; >+ >+/** >+ * Unit test for the {@link ManagerServlet}. >+ * @author Marc Guillemot >+ * @version $Revision$ >+ */ >+public class TestManagerServlet extends TomcatBaseTest { >+ >+ /** >+ * Tests that the language used for the response depends from the request >+ * and not from the server's default Locale. >+ */ >+ public void testResponseLocalization() throws Exception { >+ Tomcat tomcat = getTomcatInstance(); >+ >+ // Must have a real docBase - just use temp >+ Context ctx = tomcat.addContext("/", System.getProperty("java.io.tmpdir")); >+ ctx.setPrivileged(true); >+ >+ Tomcat.addServlet(ctx, "manager", ManagerServlet.class.getName()); >+ ctx.addServletMapping("/text/*", "manager"); >+ >+ tomcat.start(); >+ >+ assertEquals("en", "OK - Listed applications for virtual host localhost", >+ getFirstResponseLine_queryList("en")); >+ assertEquals("OK - Applications list\u00e9es pour l'h\u00f4te virtuel (virtual host) localhost", >+ getFirstResponseLine_queryList("fr")); >+ >+ // a language for which no special support exist (here Basque) should fall back to default (English) >+ assertEquals("OK - Listed applications for virtual host localhost", getFirstResponseLine_queryList("eu")); >+ >+ // without acceptLanguage header, fallback should be the same respose as for default Locale of the server >+ assertEquals(getFirstResponseLine_queryList(Locale.getDefault().getLanguage()), >+ getFirstResponseLine_queryList(null)); >+ >+ } >+ >+ private String getFirstResponseLine_queryList(final String acceptLanguage) throws IOException { >+ final Map<String, String> headers = new HashMap<String, String>(); >+ if (acceptLanguage != null) { >+ headers.put("Accept-Language", acceptLanguage); >+ } >+ final ByteChunk chunk = new ByteChunk(); >+ chunk.setEncoding(Constants.CHARSET); >+ >+ final Map<String, List<String>> responseHeaders = new HashMap<String, List<String>>(); >+ getUrl("http://localhost:" + getPort() + "/text/list", headers, chunk, responseHeaders); >+ >+ final String[] lines = chunk.toString().split("\n"); >+ return lines[0]; >+ } >+} > >Property changes on: test/org/apache/catalina/manager/TestManagerServlet.java >___________________________________________________________________ >Added: svn:eol-style > + native >Added: svn:keywords > + Author Date Id Revision > >Index: test/org/apache/catalina/startup/TomcatBaseTest.java >=================================================================== >--- test/org/apache/catalina/startup/TomcatBaseTest.java (revision 953579) >+++ test/org/apache/catalina/startup/TomcatBaseTest.java (working copy) >@@ -23,6 +23,7 @@ > import java.io.PrintWriter; > import java.net.HttpURLConnection; > import java.net.URL; >+import java.util.Collections; > import java.util.List; > import java.util.Map; > >@@ -164,11 +165,19 @@ > > public static int getUrl(String path, ByteChunk out, > Map<String, List<String>> resHead) throws IOException { >+ return getUrl(path, Collections.<String, String>emptyMap(), out, resHead); >+ } >+ >+ public static int getUrl(final String path, final Map<String, String> reqHeaders, >+ final ByteChunk out, final Map<String, List<String>> resHead) throws IOException { > >- URL url = new URL(path); >- HttpURLConnection connection = >+ final URL url = new URL(path); >+ final HttpURLConnection connection = > (HttpURLConnection) url.openConnection(); > connection.setReadTimeout(1000000); >+ for (final Map.Entry<String, String> header : reqHeaders.entrySet()) { >+ connection.addRequestProperty(header.getKey(), header.getValue()); >+ } > connection.connect(); > int rc = connection.getResponseCode(); > if (resHead != null) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 49426
:
25582
|
25583