From issues-return-13845-apmail-struts-issues-archive=struts.apache.org@struts.apache.org Fri Sep 18 17:20:14 2009 Return-Path: Delivered-To: apmail-struts-issues-archive@minotaur.apache.org Received: (qmail 58244 invoked from network); 18 Sep 2009 17:20:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 18 Sep 2009 17:20:14 -0000 Received: (qmail 86626 invoked by uid 500); 18 Sep 2009 17:20:13 -0000 Delivered-To: apmail-struts-issues-archive@struts.apache.org Received: (qmail 86545 invoked by uid 500); 18 Sep 2009 17:20:13 -0000 Mailing-List: contact issues-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list issues@struts.apache.org Received: (qmail 86537 invoked by uid 99); 18 Sep 2009 17:20:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Sep 2009 17:20:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Sep 2009 17:20:09 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 73D5F234C1E9 for ; Fri, 18 Sep 2009 10:19:48 -0700 (PDT) Message-ID: <1758789374.1253294388471.JavaMail.jira@brutus> Date: Fri, 18 Sep 2009 10:19:48 -0700 (PDT) From: "Paul Benedict (JIRA)" To: issues@struts.apache.org Subject: [jira] Commented: (STR-3190) RequestProcessor synchronized block getting hanged in Sun One Server In-Reply-To: <492047935.1248208619050.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 2265bf7ad70cb93affdfde3e15287371 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/struts/browse/STR-3190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46761#action_46761 ] Paul Benedict commented on STR-3190: ------------------------------------ We do not have access to a Sun server. Have you used another version? This can't be solved without your active investigation. > RequestProcessor synchronized block getting hanged in Sun One Server > -------------------------------------------------------------------- > > Key: STR-3190 > URL: https://issues.apache.org/struts/browse/STR-3190 > Project: Struts 1 > Issue Type: Improvement > Components: Core > Affects Versions: 1.1.0 > Environment: Application server - Sun One Application server 8.1 , Sun solaris OS. > Reporter: Moushmi Bhattacharya > Assignee: Paul Benedict > Priority: Critical > Fix For: Pending Review > > > We have incidents of the Application server hanging for a few minutes and then coming back to normal. Sun Analyzed the code and came back with the analysis that the hang is likely happening in the synchronized block of the RequestProcessor.java [ processActionCreate method ] . > We are using the struts 1.1 . Has this issue been resolved in the later releases of struts. Will Moving to a later release solve this issue. > The hang is likely happening in the synchronized block below: > 247 protected Action processActionCreate(HttpServletRequest request, > 248 HttpServletResponse response, > 249 ActionMapping mapping) > 250 throws IOException { > 251 > 252 // Acquire the Action instance we will be using (if there is one) > 253 String className = mapping.getType(); > 254 if (log.isDebugEnabled()) { > 255 log.debug(" Looking for Action instance for class " + className); > 256 } > 257 > 258 // :TODO: If there were a mapping property indicating whether > 259 // an Action were a singleton or not ([true]), > 260 // could we just instantiate and return a new instance here? > 261 > 262 Action instance = null; > 263 synchronized (actions) { > 264 > 265 // Return any existing Action instance of this class > 266 instance = (Action) actions.get(className); > 267 if (instance != null) { > 268 if (log.isTraceEnabled()) { > 269 log.trace(" Returning existing Action instance"); > 270 } > 271 return (instance); > 272 } > 273 > 274 // Create and return a new Action instance > 275 if (log.isTraceEnabled()) { > 276 log.trace(" Creating new Action instance"); > 277 } > 278 > 279 try { > 280 instance = (Action) RequestUtils.applicationInstance(className); > 281 // :TODO: Maybe we should propagate this exception > 282 // instead of returning null. > 283 } catch (Exception e) { > 284 log.error( > 285 getInternal().getMessage("actionCreate", mapping.getPath()), > 286 e); > 287 > 288 response.sendError( > 289 HttpServletResponse.SC_INTERNAL_SERVER_ERROR, > 290 getInternal().getMessage("actionCreate", mapping.getPath())); > 291 > 292 return (null); > 293 } > 294 > 295 instance.setServlet(this.servlet); > 296 actions.put(className, instance); > 297 } > 298 > 299 return (instance); > 300 > 301 } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.