[jboss-cvs] JBossAS SVN: r71316 - in branches/Branch_4_2/varia/src: resources/jmx/html and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 26 15:57:41 EDT 2008


Author: TobiasF
Date: 2008-03-26 15:57:40 -0400 (Wed, 26 Mar 2008)
New Revision: 71316

Modified:
   branches/Branch_4_2/varia/src/main/org/jboss/jmx/adaptor/html/HtmlAdaptorServlet.java
   branches/Branch_4_2/varia/src/resources/jmx/html/displayMBeans.jsp
   branches/Branch_4_2/varia/src/resources/jmx/html/style_master.css
Log:
JBAS-3406 malformed filter Strings now lead to a proper error message in the jmx-console instead of a 500

Modified: branches/Branch_4_2/varia/src/main/org/jboss/jmx/adaptor/html/HtmlAdaptorServlet.java
===================================================================
--- branches/Branch_4_2/varia/src/main/org/jboss/jmx/adaptor/html/HtmlAdaptorServlet.java	2008-03-26 19:52:05 UTC (rev 71315)
+++ branches/Branch_4_2/varia/src/main/org/jboss/jmx/adaptor/html/HtmlAdaptorServlet.java	2008-03-26 19:57:40 UTC (rev 71316)
@@ -102,95 +102,111 @@
          invokeOpByName(request, response);
    }
 
-   /** Display all mbeans categorized by domain
+   /**
+    * Display all mbeans categorized by domain
     */
-   private void displayMBeans(HttpServletRequest request, HttpServletResponse response)
-      throws ServletException, IOException
+   private void displayMBeans(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+         IOException
    {
-      // get ObjectName filter from request or session context 
-	  HttpSession session = request.getSession(false);
-      String      filter  = request.getParameter(FILTER_PARAM);
+      // get ObjectName filter from request or session context
+      HttpSession session = request.getSession(false);
+      String filter = request.getParameter(FILTER_PARAM);
 
-      if( filter == null && session != null)
+      if (filter == null && session != null)
       {
          // try using previously provided filter from session context
-         filter = (String) session.getAttribute(FILTER_PARAM);   
+         filter = (String) session.getAttribute(FILTER_PARAM);
       }
-      
-      if( filter != null && filter.length() > 0 )
+
+      if (filter != null && filter.length() > 0)
       {
          // Strip any enclosing quotes
-         if( filter.charAt(0) == '"' )
+         if (filter.charAt(0) == '"')
             filter = filter.substring(1);
-         if( filter.charAt(filter.length()-1) == '"')
-            filter = filter.substring(0, filter.length()-2);
+         if (filter.charAt(filter.length() - 1) == '"')
+            filter = filter.substring(0, filter.length() - 2);
 
-		 // be a litte it tolerant to user input
+         // be a litte it tolerant to user input
          String domain = "*";
-         String props  = "*,*";
+         String props = "*,*";
 
-		 int separator  = filter.indexOf(':');
+         int separator = filter.indexOf(':');
          int assignment = filter.indexOf('=');
 
          if (separator == -1 && assignment != -1)
-		 {
-			// assume properties only
+         {
+            // assume properties only
             props = filter.trim();
          }
-		 else if (separator == -1 && assignment == -1)
+         else if (separator == -1 && assignment == -1)
          {
-			// assume domain name only
-			domain = filter.trim();
+            // assume domain name only
+            domain = filter.trim();
          }
          else
          {
-			// domain and properties
-            domain = filter.substring(0,separator).trim();
-            props  = filter.substring(separator+1).trim();
-		 }
+            // domain and properties
+            domain = filter.substring(0, separator).trim();
+            props = filter.substring(separator + 1).trim();
+         }
 
-         if (domain.equals(""))    domain = "*";
+         if (domain.equals(""))
+            domain = "*";
 
-         if ( props.equals("")    )   props  = "*,*";
-         if ( props.endsWith("," ))   props += "*";
-         if (!props.endsWith(",*"))   props += ",*";
-         if ( props.equals("*,*" ))   props =  "*";
+         if (props.equals(""))
+            props = "*,*";
+         if (props.endsWith(","))
+            props += "*";
+         if (!props.endsWith(",*"))
+            props += ",*";
+         if (props.equals("*,*"))
+            props = "*";
 
          filter = domain + ":" + props;;
 
-		 if (filter.equals("*:*"))
-			 filter = "";
+         if (filter.equals("*:*"))
+            filter = "";
       }
-	  else
-	  {
-	     filter = "";
+      else
+      {
+         filter = "";
       }
 
-	  // update request filter and store filter in session context,
-	  // so it can be used when no filter has been submitted in 
-	  // current request 
+      // update request filter and store filter in session context,
+      // so it can be used when no filter has been submitted in
+      // current request
       request.setAttribute(FILTER_PARAM, filter);
 
-      if( session != null )
-	  {
-	     session.setAttribute(FILTER_PARAM, filter);
-	  }
+      if (session != null)
+      {
+         session.setAttribute(FILTER_PARAM, filter);
+      }
 
+      Iterator mbeans;
       try
       {
-         Iterator mbeans = Server.getDomainData(filter);
-         request.setAttribute("mbeans", mbeans);
-         RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/displayMBeans.jsp");
-         rd.forward(request, response);
+         mbeans = Server.getDomainData(filter);
       }
-      catch(JMException e)
+      catch (JMException e)
       {
-         throw new ServletException("Failed to get MBeans", e);
+         request.setAttribute("filterError", e.getMessage());
+         try
+         {
+            mbeans = Server.getDomainData("");
+         }
+         catch (JMException e1)
+         {
+            throw new ServletException("Failed to get MBeans", e);
+         }
       }
+      request.setAttribute("mbeans", mbeans);
+      RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/displayMBeans.jsp");
+      rd.forward(request, response);
    }
 
-   /** Display an mbeans attributes and operations
-    */
+   /**
+	 * Display an mbeans attributes and operations
+	 */
    private void inspectMBean(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException
    {

Modified: branches/Branch_4_2/varia/src/resources/jmx/html/displayMBeans.jsp
===================================================================
--- branches/Branch_4_2/varia/src/resources/jmx/html/displayMBeans.jsp	2008-03-26 19:52:05 UTC (rev 71315)
+++ branches/Branch_4_2/varia/src/resources/jmx/html/displayMBeans.jsp	2008-03-26 19:57:40 UTC (rev 71316)
@@ -27,7 +27,12 @@
    </table>
 <hr>
 <form action="HtmlAdaptor?action=displayMBeans" method="post" name="applyFilter" id="applyFilter">
-ObjectName Filter (e.g. "jboss:*", "*:service=invoker,*")  :<input type="text" name="filter" size="40" value="<%= request.getAttribute("filter")%>"> <input type="submit" name="apply" value="ApplyFilter">
+ObjectName Filter (e.g. "jboss:*", "*:service=invoker,*")  :<input type="text" name="filter" size="40" value="<%= request.getAttribute("filter")%>" /><input type="submit" name="apply" value="ApplyFilter">
+<%
+ 	if (request.getAttribute("filterError") != null) {
+		out.println("<br/><span class='error'>"+request.getAttribute("filterError")+"</span>");
+ 	}
+%>
 </form>
 <hr>
 <%

Modified: branches/Branch_4_2/varia/src/resources/jmx/html/style_master.css
===================================================================
--- branches/Branch_4_2/varia/src/resources/jmx/html/style_master.css	2008-03-26 19:52:05 UTC (rev 71315)
+++ branches/Branch_4_2/varia/src/resources/jmx/html/style_master.css	2008-03-26 19:57:40 UTC (rev 71316)
@@ -31,6 +31,11 @@
 }.bg_cell{
 	background-color : #ffffff;
 }
+
+* .error {
+	color: red;
+}
+
 A:ACTIVE {
 	font-family: Arial, Helvetica, sans-serif;
 	font-size: 14px;




More information about the jboss-cvs-commits mailing list