From: <jko...@hy...> - 2010-05-11 17:54:13
|
Author: jkonicki Date: 2010-05-11 10:45:16 -0700 (Tue, 11 May 2010) New Revision: 14587 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14587 Modified: branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java Log: HHQ-3979 Backport fix (HHQ-3880) to 4.2.0.8 Modified: branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java =================================================================== --- branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java 2010-05-11 07:58:12 UTC (rev 14586) +++ branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java 2010-05-11 17:45:16 UTC (rev 14587) @@ -6,7 +6,7 @@ * normal use of the program, and does *not* fall under the heading of * "derived work". * - * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. + * Copyright (C) [2004-2010], Hyperic, Inc. * This file is part of HQ. * * HQ is free software; you can redistribute it and/or modify @@ -50,7 +50,9 @@ public class JMXProtocolAjp extends JMXProtocolRequest { private static Log log = LogFactory.getLog(JMXProtocolAjp.class); + private static final String PROP_JMX_AJP_TIMEOUT = "jmx.ajpTimeOut"; private static final int M_GET = 2; + private static final int SOCKET_TIMEOUT = 60000; private HashMap sockets = new HashMap(); @@ -66,14 +68,28 @@ } if (s == null) { - log.debug("Connect " + host + " " + port ); + if (log.isDebugEnabled()) { + log.debug("Connect " + host + " " + port ); + } s = new Socket(host, port); + s.setSoTimeout(getSocketTimeout()); sockets.put(key, s); } return s; } + private int getSocketTimeout() { + int soTimeout; + try { + soTimeout = + Integer.parseInt(System.getProperty(PROP_JMX_AJP_TIMEOUT)); + } catch (NumberFormatException e) { + soTimeout = SOCKET_TIMEOUT; + } + return soTimeout; + } + private void closeSocket(Socket s) throws SocketException, IOException { s.shutdownOutput(); |