10000 Made error messages in CLI more user friendly by fhembroff · Pull Request #222 · dockstore/dockstore-cli · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Made error messages in CLI more user friendly #222

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8000
Merged
merged 10 commits into from
Feb 8, 2023

Conversation

fhembroff
Copy link
Contributor
@fhembroff fhembroff commented Feb 6, 2023

Description

This PR improves the readability of error messages given in the CLI. If the --debug or --info is not given then the CLI will only display (in System.err)

ERROR: <ERROR_MESSAGE>

Where <ERROR_MESSAGE> is:

  1. The message if it is given when exceptionMessage is called
  2. If the above is not available, then it is the message in the exception. This occurs a lot, such as when you give the path of a config file that doesn't exist
  3. The message "An unknown error has occurred. Consider rerunning with --debug" if the above two are not available

I am using LOG.isInfoEnabled() to determine whether I should the "nice" output, or the output with the stack traces. This is because it will allow developers to use the --info flag instead of the --debug flag to see the output. As the --debug flag creates a lot of output. I have made a comment showing the difference in output when --debug is used, as compared to --info.

Examples of error messages

Before

> java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar workflow --config x # This is an example of a case 2 error message
15:38:05.174 [main] ERROR io.dockstore.client.cli.ArgumentUtility - java.lang.RuntimeException: Could not read x
        at io.dockstore.common.Utilities.parseConfig(Utilities.java:81)
        at io.dockstore.client.cli.Client.getIniConfiguration(Client.java:861)
        at io.dockstore.client.cli.Client.setupClientEnvironment(Client.java:797)
        at io.dockstore.client.cli.Client.run(Client.java:692)
        at io.dockstore.client.cli.Client.main(Client.java:629)

After

 > java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar yaml --config x # This is an example of a case 2 error message
ERROR: Could not read x

Before

> java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar tool wes # This is an example of a case 1 error message
15:41:30.464 [main] ERROR io.dockstore.client.cli.ArgumentUtility - WES API calls are only valid for workflows not tools.

After

> java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar tool wes # This is an example of a case 1 error message
ERROR: WES API calls are only valid for workflows not tools.

Review Instructions
Verify that error messages are given to users in a user-friendly way.
Ensure that error messages are still given to users and that the error messages are helpful.

Issue
dockstore/dockstore#5223
DOCK-2275

Security
If there are any concerns that require extra attention from the security team, highlight them here.

Please make sure that you've checked the following before submitting your pull request. Thanks!

  • Check that you pass the basic style checks and unit tests by running ./mvnw clean install
  • If this PR is for a user-facing feature, create and link a documentation ticket for this feature (usually in the same milestone as the linked issue). Style points if you create a documentation PR directly and link that instead.

@fhembroff
Copy link
Contributor Author

Difference in output when info flag is given compared to when debug flag is given

DEBUG FLAG

> java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar yaml --config x --debug
15:31:37.003 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter - Setting default value: false
15:31:37.005 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter - Converting 'Boolean' value 'false' to type 'Boolean'
15:31:37.005 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter -     No conversion required, value is already a Boolean
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter - Setting default value: 0
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter - Converting 'Integer' value '0' to type 'Byte'
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter -     Converted to Byte value '0'
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter - Setting default value:  
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter - Converting 'Character' value ' ' to type 'Character'
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter -     No conversion required, value is already a Character
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter - Setting default value: 0
15:31:37.006 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter - Converting 'Integer' value '0' to type 'Double'
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter -     Converted to Double value '0.0'
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter - Setting default value: 0
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter - Converting 'Integer' value '0' to type 'Float'
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter -     Converted to Float value '0.0'
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter - Setting default value: 0
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter - Converting 'Integer' value '0' to type 'Integer'
15:31:37.007 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter -     No conversion required, value is already a Integer
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter - Setting default value: 0
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter - Converting 'Integer' value '0' to type 'Long'
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter -     Converted to Long value '0'
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter - Setting default value: 0
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter - Converting 'Integer' value '0' to type 'Short'
15:31:37.008 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter -     Converted to Short value '0'
15:31:37.009 [main] DEBUG org.apache.commons.beanutils.converters.BigDecimalConverter - Setting default value: 0.0
15:31:37.009 [main] DEBUG org.apache.commons.beanutils.converters.BigDecimalConverter - Converting 'BigDecimal' value '0.0' to type 'BigDecimal'
15:31:37.009 [main] DEBUG org.apache.commons.beanutils.converters.BigDecimalConverter -     No conversion required, value is already a BigDecimal
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BigIntegerConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BigIntegerConverter - Converting 'BigInteger' value '0' to type 'BigInteger'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BigIntegerConverter -     No conversion required, value is already a BigInteger
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter - Setting default value: false
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter - Converting 'Boolean' value 'false' to type 'Boolean'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.BooleanConverter -     No conversion required, value is already a Boolean
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter - Converting 'Integer' value '0' to type 'Byte'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ByteConverter -     Converted to Byte value '0'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter - Setting default value:  
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter - Converting 'Character' value ' ' to type 'Character'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.CharacterConverter -     No conversion required, value is already a Character
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter - Converting 'Integer' value '0' to type 'Double'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.DoubleConverter -     Converted to Double value '0.0'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter - Converting 'Integer' value '0' to type 'Float'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.FloatConverter -     Converted to Float value '0.0'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter - Converting 'Integer' value '0' to type 'Integer'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.IntegerConverter -     No conversion required, value is already a Integer
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter - Converting 'Integer' value '0' to type 'Long'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.LongConverter -     Converted to Long value '0'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter - Setting default value: 0
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter - Converting 'Integer' value '0' to type 'Short'
15:31:37.010 [main] DEBUG org.apache.commons.beanutils.converters.ShortConverter -     Converted to Short value '0'
15:31:37.011 [main] DEBUG org.apache.commons.beanutils.converters.StringConverter - Setting default value: 
15:31:37.011 [main] DEBUG org.apache.commons.beanutils.converters.StringConverter - Converting 'String' value '' to type 'String'
15:31:37.013 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Z@402f32ff
15:31:37.013 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'boolean[]' value '[Z@402f32ff' to type 'boolean[]'
15:31:37.013 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a boolean[]
15:31:37.013 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [B@573f2bb1
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'byte[]' value '[B@573f2bb1' to type 'byte[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a byte[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [C@5ae9a829
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'char[]' value '[C@5ae9a829' to type 'char[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a char[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [D@6d8a00e3
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'double[]' value '[D@6d8a00e3' to type 'double[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a double[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [F@548b7f67
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'float[]' value '[F@548b7f67' to type 'float[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a float[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [I@7ac7a4e4
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'int[]' value '[I@7ac7a4e4' to type 'int[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a int[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [J@6d78f375
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'long[]' value '[J@6d78f375' to type 'long[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a long[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [S@50c87b21
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'short[]' value '[S@50c87b21' to type 'short[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a short[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.math.BigDecimal;@5f375618
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'BigDecimal[]' value '[Ljava.math.BigDecimal;@5f375618' to type 'BigDecimal[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a BigDecimal[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.math.BigInteger;@32d992b2
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'BigInteger[]' value '[Ljava.math.BigInteger;@32d992b2' to type 'BigInteger[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a BigInteger[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Boolean;@4439f31e
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Boolean[]' value '[Ljava.lang.Boolean;@4439f31e' to type 'Boolean[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Boolean[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Byte;@23ceabc1
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Byte[]' value '[Ljava.lang.Byte;@23ceabc1' to type 'Byte[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Byte[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Character;@5d5eef3d
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Character[]' value '[Ljava.lang.Character;@5d5eef3d' to type 'Character[]'
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Character[]
15:31:37.014 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Double;@56f4468b
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Double[]' value '[Ljava.lang.Double;@56f4468b' to type 'Double[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Double[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Float;@3a82f6ef
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Float[]' value '[Ljava.lang.Float;@3a82f6ef' to type 'Float[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Float[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Integer;@643b1d11
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Integer[]' value '[Ljava.lang.Integer;@643b1d11' to type 'Integer[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Integer[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Long;@2ef5e5e3
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Long[]' value '[Ljava.lang.Long;@2ef5e5e3' to type 'Long[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Long[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Short;@36d4b5c
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Short[]' value '[Ljava.lang.Short;@36d4b5c' to type 'Short[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Short[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.String;@6d00a15d
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'String[]' value '[Ljava.lang.String;@6d00a15d' to type 'String[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a String[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.lang.Class;@51efea79
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Class[]' value '[Ljava.lang.Class;@51efea79' to type 'Class[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Class[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.util.Date;@5034c75a
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Date[]' value '[Ljava.util.Date;@5034c75a' to type 'Date[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Date[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.util.Calendar;@51081592
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'Calendar[]' value '[Ljava.util.Calendar;@51081592' to type 'Calendar[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a Calendar[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.io.File;@9629756
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'java.io.File[]' value '[Ljava.io.File;@9629756' to type 'java.io.File[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a java.io.File[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.sql.Date;@735b5592
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'java.sql.Date[]' value '[Ljava.sql.Date;@735b5592' to type 'java.sql.Date[]'
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a java.sql.Date[]
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.sql.Time;@4520ebad
15:31:37.015 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'java.sql.Time[]' value '[Ljava.sql.Time;@4520ebad' to type 'java.sql.Time[]'
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a java.sql.Time[]
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.sql.Timestamp;@7dc7cbad
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'java.sql.Timestamp[]' value '[Ljava.sql.Timestamp;@7dc7cbad' to type 'java.sql.Timestamp[]'
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a java.sql.Timestamp[]
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Setting default value: [Ljava.net.URL;@4f933fd1
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter - Converting 'java.net.URL[]' value '[Ljava.net.URL;@4f933fd1' to type 'java.net.URL[]'
15:31:37.016 [main] DEBUG org.apache.commons.beanutils.converters.ArrayConverter -     No conversion required, value is already a java.net.URL[]
15:31:37.041 [main] ERROR io.dockstore.client.cli.ArgumentUtility - java.lang.RuntimeException: Could not read x
        at io.dockstore.common.Utilities.parseConfig(Utilities.java:81)
        at io.dockstore.client.cli.Client.getIniConfiguration(Client.java:861)
        at io.dockstore.client.cli.Client.setupClientEnvironment(Client.java:797)
        at io.dockstore.client.cli.Client.run(Client.java:692)
        at io.dockstore.client.cli.Client.main(Client.java:629)


INFO FLAG

 java -jar dockstore-client/target/dockstore-client-1.14.0-SNAPSHOT-shaded.jar yaml --config x --info
15:34:59.504 [main] ERROR io.dockstore.client.cli.ArgumentUtility - java.lang.RuntimeException: Could not read x
        at io.dockstore.common.Utilities.parseConfig(Utilities.java:81)
        at io.dockstore.client.cli.Client.getIniConfiguration(Client.java:861)
        at io.dockstore.client.cli.Client.setupClientEnvironment(Client.java:797)
        at io.dockstore.client.cli.Client.run(Client.java:692)
        at io.dockstore.client.cli.Client.main(Client.java:629)

} else if (!"".equals(exception.getMessage())) {
err(exception.getMessage());
} else if ("".equals(message)) {
err("An unknown error has occurred. Consider rerunning with --debug");
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I be advising users to rerun with --debug?

Also, I will change --debug to the DEBUG constant once #221 is merged.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I be advising users to rerun with --debug?

That make sense, although we don't have too many LOG.debug statements. But we have enough.

@fhembroff fhembroff requested review from denis-yuen, coverbeck, kathy-t and svonworl and removed request for denis-yuen February 6, 2023 22:29
@fhembroff fhembroff marked this pull request as ready for review February 6, 2023 22:29
@fhembroff fhembroff self-assigned this Feb 6, 2023
if (LOG.isInfoEnabled()) {
LOG.error(arg);
} else {
System.err.println(ERROR_MESSAGE_START + arg);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use io.dockstore.client.cli.ArgumentUtility#err for consistency.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is where err is defined. Would it better to call this method, printError and define err to be System.err.println?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 Ignore my comment.

} else if (!"".equals(exception.getMessage())) {
err(exception.getMessage());
} else if ("".equals(message)) {
err("An unknown error has occurred. Consider rerunning with --debug");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I be advising users to rerun with --debug?

That make sense, although we don't have too many LOG.debug statements. But we have enough.

Copy link
Member
@denis-yuen denis-yuen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in principle, awaiting build success

if (LOG.isInfoEnabled()) {
LOG.error(arg);
} else {
System.err.println(ERROR_MESSAGE_START + arg);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 Ignore my comment.

@codecov
Copy link
codecov bot commented Feb 7, 2023

Codecov Report

Base: 69.39% // Head: 69.65% // Increases project coverage by +0.26% 🎉

Coverage data is based on head (1162dfb) compared to base (8abe8c6).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #222      +/-   ##
=============================================
+ Coverage      69.39%   69.65%   +0.26%     
- Complexity      1050     1069      +19     
=============================================
  Files             47       47              
  Lines           6034     6041       +7     
  Branches         789      792       +3     
=============================================
+ Hits            4187     4208      +21     
+ Misses          1515     1510       -5     
+ Partials         332      323       -9     
Flag Coverage Δ
bitbuckettests 9.91% <50.00%> (+0.02%) ⬆️
confidentialtooltests 54.84% <80.00%> (+0.30%) ⬆️
confidentialworkflowtests 27.82% <60.00%> (+0.11%) ⬆️
nonconfidentialtests 32.46% <60.00%> (+0.07%) ⬆️
singularitytests 16.68% <0.00%> (-0.02%) ⬇️
unittests 8.35% <20.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
.../java/io/dockstore/client/cli/ArgumentUtility.java 84.52% <100.00%> (+0.67%) ⬆️
...ava/io/dockstore/client/cli/nested/ToolClient.java 72.63% <0.00%> (+0.13%) ⬆️
...io/dockstore/client/cli/nested/WorkflowClient.java 71.47% <0.00%> (+0.30%) ⬆️
...ckstore/client/cli/nested/AbstractEntryClient.java 74.85% <0.00%> (+0.49%) ⬆️
...in/java/io/github/collaboratory/wdl/WDLClient.java 80.19% <0.00%> (+0.99%) ⬆️
.../src/main/java/io/dockstore/client/cli/Client.java 50.00% <0.00%> (+1.22%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@fhembroff
Copy link
Contributor Author

I think this suggestion from SonarCloud would just complicate things and make them less readable in this situation.

@fhembroff fhembroff requested a review from denis-yuen February 7, 2023 22:10
}

private static void errFormatted(String format, Object... args) {
LOG.error((String.format(format, args)));
if (LOG.isInfoEnabled()) {
LOG.error(String.format(format, args));
Copy link
Contributor
@svonworl svonworl Feb 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might be able to eliminate some duplicate code by replacing the body of this function with a call to err(String.format(format, args))

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have now done this.


if (LOG.isInfoEnabled()) {
err(ExceptionUtils.getStackTrace(exception));
} else if (exception.getMessage() != null && !"".equals(exception.getMessage())) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have now done this.

@sonarqubecloud
Copy link
sonarqubecloud bot commented Feb 8, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@fhembroff fhembroff merged commit 0633024 into develop Feb 8, 2023
@fhembroff fhembroff deleted the feature/DOCK-2275/clean-up-error-messages branch February 8, 2023 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0