[jboss-jira] [JBoss JIRA] (AS7-5008) host-controller module does parse command line args too late

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Sun Nov 25 12:25:21 EST 2012


    [ https://issues.jboss.org/browse/AS7-5008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736804#comment-12736804 ] 

Brian Stansberry commented on AS7-5008:
---------------------------------------

Sorry I've been so slow looking at this.

The error handling certainly needs some rework.

AFAICT, the calling of usage() was consistent in the parsing. The way it all works isn't very good though.

Main.parseValue() isn't outputting an error message; I think that is what you are referring to in your last comment. That needs to be fixed.

The use of System.err in HostController Main is an issue. The ProcessController consumes the HC's syserr and pipes it to its own syserr, and the output doesn't appear on the PC's console. Currently the usage() output from the HC shows up as log output, so that at least gives some clue to the user that something was wrong with the command line arguments. But the more descriptive error message doesn't appear in the console.

To decide what to do about that I need to talk to David Lloyd to try and refresh my memory as to why the ProcessController handles its output streams the way it does. I don't want to inadvertently break something. Intuitively, I think output to System.err from a ManagedProcess should result in an ERROR log message in the PC's console.

Having HC's Main dump the full usage() output to the log isn't nice since it looks bad, but I think following the error message with something like "INFO Use domain.sh --help for information on valid command line arguments" would be good. That could also be appended to the error messages.

As for System.exit() vs. abort(), sure, having everything go through a consistent routine is better. The key thing is following any refactor, for any situation the exit codes that are currently sent must still be sent.
                
> host-controller module does parse command line args too late
> ------------------------------------------------------------
>
>                 Key: AS7-5008
>                 URL: https://issues.jboss.org/browse/AS7-5008
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Domain Management
>    Affects Versions: 7.1.1.Final, 7.2.0.Alpha1
>            Reporter: Bernd Eckenfels
>            Assignee: Brian Stansberry
>            Priority: Minor
>              Labels: as, usage
>
> When starting the host controller module to use the -v or -h command line switches (which are supported in the code) there will be no result. The reason for this is, that the host-controller reads the authKey before it parses the command line for the manual invok. Also it looks like the redirected input/output leads to the case that no usage() can be writte anyway.
> org.jboss.as.process.protocol.StreamUtils.readFully(StreamUtils.java:124)
> org.jboss.as.host.controller.Main.main(Main.java:82)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> java.lang.reflect.Method.invoke(Unknown Source)
> org.jboss.modules.Module.run(Module.java:260)
> org.jboss.modules.Main.main(Main.java:291)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list