Bug 754199
| Summary: | AS7 plugin: fix exception handling and remove all output to stdout or stderr | ||
|---|---|---|---|
| Product: | [Other] RHQ Project | Reporter: | Ian Springer <ian.springer> |
| Component: | Plugins | Assignee: | Libor Zoubek <lzoubek> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Mike Foley <mfoley> |
| Severity: | medium | Docs Contact: | |
| Priority: | high | ||
| Version: | 4.2 | CC: | ccrouch, hrupp, theute |
| Target Milestone: | --- | ||
| Target Release: | RHQ 4.3.0 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-08-31 10:15:50 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 707223, 745494 | ||
d5c745a in master verified through code review http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=commit;h=d5c745ab74e75f52242b245c4ad83a3e70b6d7a0 Bulk close of old bugs in VERIFIED state. |
The AS7 plugin contains 7 instances of: } catch (Exception e) { e.printStackTrace(); // TODO: Customise this generated block } Plugins should never output to stdout or stderr, but should instead use a logger. Otherwise, when exceptions occur, users will get stack traces dumped into their agent command prompt (this just happened to me). Also, any calls to System.out.println() or System.err.println() should be replaced with logging (I see a call to System.out.println() in JmsComponent). Note, in discovery components, we should make sure to use the following format for exception handling to make sure an exception during discovery of one resource does not prevent discovery of other resources: Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>(); List<ProcessScanResult> processes = discoveryContext.getAutoDiscoveredProcesses(); for (ProcessScanResult process : processes) { try { // do discovery ... discoveredResources.add(detail); } catch (Exception e) { // log and continue on to next process log.error("Failed to discover AS instance for process " + process, e); } } return discoveredResources;