/**
   * CAUTION: Decompiled by hand.
   *
   * @param stringbuffer
   * @return
   */
  public String getBrowseData(StringBuffer stringbuffer) {
    try {
      connect();
      Weblogic6xObject weblogic6xobject = new Weblogic6xObject();
      addedMBeans = new Hashtable();
      Set set =
          (Set)
              management.queryNamesMethod.invoke(
                  mbs,
                  new Object[] {
                    null,
                    management.finalSubStringMethod.invoke(
                        null,
                        new Object[] {
                          management.attrMethod.invoke(null, new Object[] {"Type"}),
                          management.valueMethod.invoke(null, new Object[] {"Runtime"})
                        })
                  });

      int i = set.size();
      System.out.println("Weblogic6x: Found " + i + " beans.");
      Object obj = set.iterator();
      while (((Iterator) (obj)).hasNext()) {
        Object obj1 = ((Iterator) (obj)).next();
        if (!addedMBeans.containsKey(obj1)) {
          Weblogic6xObject weblogic6xobject1 = new Weblogic6xObject(obj1, mbs, management);
          if ((!weblogic6xobject1.getType().equals("WebAppComponentRuntime")
                  || !weblogic6xobject1.getName().equals("console")
                      && !weblogic6xobject1.getName().equals("wl_management_internal1")
                      && !weblogic6xobject1.getName().equals("wl_management_internal2"))
              && (!weblogic6xobject1.getType().equals("ServletRuntime")
                  || management
                      .getKeyPropertyMethod
                      .invoke(weblogic6xobject1.getParentName(), new Object[] {"Type"})
                      .equals("WebAppComponentRuntime"))) {
            addObject(weblogic6xobject1, weblogic6xobject);
          }
        }
      }

      weblogic6xobject.purge();
      obj = new CharArrayWriter();
      weblogic6xobject.printXML(new PrintWriter(((java.io.Writer) (obj))), 0);
      return ((CharArrayWriter) (obj)).toString();
    } catch (Throwable throwable) {
      Throwable throwable1 = throwable.getCause();
      if (throwable1 != null) {
        LogManager.log("Error", "WebLogic exception cause: " + throwable1.toString());
      }
      throwable.printStackTrace();
      String s = throwable.getMessage();
      if (s == null) {
        stringbuffer.append(
            "Unable to load the list of counters. Please check if you are using the correct version of the WebLogic jar file.");
      } else {
        stringbuffer.append(s);
      }
      return "";
    }
  }
  private void addObject(Weblogic6xObject weblogic6xobject, Weblogic6xObject weblogic6xobject1) {
    Weblogic6xObject weblogic6xobject2;
    try {
      Object obj = weblogic6xobject.getParentName();
      weblogic6xobject2 = (Weblogic6xObject) addedMBeans.get(obj);
      if (weblogic6xobject2 == null) {
        weblogic6xobject2 = new Weblogic6xObject(obj, mbs, management);
        addObject(weblogic6xobject2, weblogic6xobject1);
      }
    } catch (Exception exception) {
      weblogic6xobject2 = weblogic6xobject1;
    }
    weblogic6xobject.setParent(weblogic6xobject2);
    weblogic6xobject2.addSubObject(weblogic6xobject);
    addedMBeans.put(weblogic6xobject.getObjectName(), weblogic6xobject);
    if (weblogic6xobject.getType().equals("WebAppComponentRuntime")) {
      try {
        Object aobj[] =
            (Object[])
                management.getAttributeMethod.invoke(
                    mbs, new Object[] {weblogic6xobject.getObjectName(), "Servlets"});
        for (int i = 0; i < aobj.length; i++) {
          if (!addedMBeans.containsKey(aobj[i])) {
            Weblogic6xObject weblogic6xobject3 =
                new Weblogic6xObject(aobj[i], weblogic6xobject, mbs, management);
            weblogic6xobject.addSubObject(weblogic6xobject3);
          }
        }

      } catch (Exception exception1) {
        exception1.printStackTrace();
      }
    }
  }