I went through all the places where throwable.printStackTrace is called that should be replaced with logging. This is especially needed for code that will be running in the agent (plugin code for example) because otherwise we are dumping exceptions on the console and it dirties up the user prompt. People should go through this list and pick off each one of these. Don't have to do it all at once, but we should get it to where all of these are replaced. Edit this description by putting an "X" in front of the class that you fixed so we can track what has and has not be fixed. --- CORE --- AbstractGroupPluginConfigurationUIBean.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group CacheListener.java - rhq/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine ClientMain.java - rhq/modules/enterprise/client/src/main/java/org/rhq/enterprise/client (3 matches) ConfigResource.java - rhq/modules/enterprise/gui/webdav-war/src/main/java/org/rhq/gui/webdav (2 matches) Configuration.java - rhq/modules/core/domain/src/main/java/org/rhq/core/domain/configuration (2 matches) ConfigurationCheckExecutor.java - rhq/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration ConfigurationMetadataManagerBean.java - rhq/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata DateDecorator.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display (2 matches) IncludeUIBean.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/util (3 matches) OptionMessageListTag.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib PropertiesGenerator.java - rhq/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n (3 matches) RemoteClient.java - rhq/modules/enterprise/client/src/main/java/org/rhq/enterprise/client RemoteClientProxy.java - rhq/modules/enterprise/client/src/main/java/org/rhq/enterprise/client ResourceGroupTreeStateAdvisor.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group ResourceTreeContextMenuUIBean.java - rhq/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource StringUtil.java - rhq/modules/core/util/src/main/java/org/rhq/core/clientapi/util (3 matches) TabularWriter.java - rhq/modules/enterprise/client/src/main/java/org/rhq/enterprise/client (4 matches) --- PLUGINS --- DomainConfigurationEditor.java - rhq/modules/plugins/virt/src/main/java/org/rhq/plugins/virt (2 matches) HardwareComponent.java - rhq/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware JiraClient.java - rhq/modules/plugins/jira/src/main/java/org/rhq/plugins/jira (8 matches) MySqlComponent.java - rhq/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql (3 matches) PostgresUserComponent.java - rhq/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres SmartDiskComponent.java - rhq/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware SmartDiskDiscoveryComponent.java - rhq/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware SnmpTrapEventPoller.java - rhq/modules/plugins/snmptrapd/src/main/java/org/rhq/plugins/snmptrapd ---- AbstractMessagingConfigurationEditor.java - jopr/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util (2 matches) DeploymentUtility.java - jopr/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util JnpConfig.java - jopr/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util WarDiscoveryHelper.java - jopr/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util (2 matches) JBossCacheSubsystemComponent.java - jopr/modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache JnpConfig.java - jopr/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util
Random thoughts: Sometimes the stacktrace can be valuable for debugging purposes, so I wouldn't want to get rid of it completely. I sometimes use the pattern: } catch (Throwable t) { if (log.isDebugEnabled()) { log.debug("Some message", t); // the full trace } else { log.infoOrWarn("Some message: " + t.getMessage()); // just the message } } It's debatable, however, whether or not to use different log levels when in debug mode or not. On occasion, I've used the same level but just changed the amount of debugging: } catch (Throwable t) { if (log.isDebugEnabled()) { log.infoOrWarn("Some message", t); // the full trace } else { log.infoOrWarn("Some message: " + t.getMessage()); // just the message } } Just something to consider.
This bug was previously known as http://jira.rhq-project.org/browse/RHQ-2178
When installing the agents on linux with a bad command line parameter you see a stack trace. I dont mind it being in the log file for debug.. but should not show up in the console for command line stuff.