[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: RFR: JDK-8234808: jdb quoted option parsing broken
From: "serguei.spitsyn () oracle ! com" <serguei ! spitsyn () oracle ! com>
Date: 2020-08-19 23:46:03
Message-ID: 89e03cfd-7ae1-1c88-26eb-73b8c6b8d79f () oracle ! com
[Download RAW message or body]
Thank you for the update, Alex!
It looks good.
Thanks,
Serguei
On 8/19/20 16:35, Alex Menkov wrote:
> Updated webrev:
>
> http://cr.openjdk.java.net/~amenkov/jdk16/jdb_options/webrev.02/
>
> --alex
>
> On 08/19/2020 16:14, serguei.spitsyn@oracle.com wrote:
> > On 8/19/20 15:11, Alex Menkov wrote:
> > > Hi Serguei,
> > >
> > > thank you for the feedback.
> > >
> > > On 08/19/2020 13:58, serguei.spitsyn@oracle.com wrote:
> > > > Hi Alex,
> > > >
> > > > Sorry, I've overlooked this request for review.
> > > > The fix looks good in general.
> > > >
> > > >
> > > > http://cr.openjdk.java.net/~amenkov/jdk16/jdb_options/webrev/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/VMConnection.java.frames.html \
> > > >
> > > >
> > > > 81 private Map <String, com.sun.jdi.connect.Connector.Argument>
> > > > parseConnectorArgs(Connector connector,
> > > > 82 String argString,
> > > > 83 String extraOptions) {
> > > >
> > > > To make it more elegant I'd suggest to place the returned type on a
> > > > separate line like below:
> > > > private Map<String, com.sun.jdi.connect.Connector.Argument>
> > > > parseConnectorArgs(Connector connector, String argString, String
> > > > extraOptions) {
> > >
> > > Do you mean second line indent should be the same as 1st?
> > > or make it 8 spaces:
> > >
> > > private Map<String, com.sun.jdi.connect.Connector.Argument>
> > > parseConnectorArgs(Connector connector, String argString,
> > > String extraOptions) {
> >
> > No indent is needed, I think.
> > My suggestion is to use extra line for method return type instead of
> > method arguments.
> >
> >
> > > >
> > > > 127 sb.append(extraOptions).append(" ");
> > > > 128 // set extraOptions to null to not set it again
> > > > 129 extraOptions = null;
> > > >
> > > > What about rewording the comment like below? :
> > > > // set extraOptions to null to avoid appending it again
> > >
> > > ok.
> > >
> > > >
> > > > 165 if (extraOptions != null) {
> > > > 166 // there was no "option" specified in argString
> > > > 167 Connector.Argument argument = arguments.get("options");
> > > > 168 if (argument != null) {
> > > > 169 argument.setValue(extraOptions);
> > > > 170 }
> > > > 171 }
> > > >
> > > > Should the "option" in the comment be replaced with "options"?
> > >
> > > right.
> > >
> > > > What if the argument at line 167 was set to null?
> > > > Will the extraOptions be ignored in such a case?
> > >
> > > extraOptions makes sense only for CommandLineLaunch connector which
> > > launches new VM (and only this connector has "options" argument).
> > > Other connectors (attach or listen) connect to existing VM and
> > > cannot set its options.
> >
> > Okay, thank you for explanation.
> >
> > Thanks,
> > Serguei
> >
> > > >
> > > >
> > > > http://cr.openjdk.java.net/~amenkov/jdk16/jdb_options/webrev/test/jdk/com/sun/jdi/JdbOptions.java.html \
> > > >
> > > >
> > > > This line is probably not needed anymore:
> > > >
> > > > 157 //jdb.quit();
> > > >
> > >
> > > will delete.
> > >
> > > --alex
> > >
> > > >
> > > >
> > > >
> > > > Thanks,
> > > > Serguei
> > > >
> > > > On 8/7/20 15:09, Alex Menkov wrote:
> > > > > Hi all,
> > > > >
> > > > > please review the fix for
> > > > > https://bugs.openjdk.java.net/browse/JDK-8234808
> > > > > webrev:
> > > > > http://cr.openjdk.java.net/~amenkov/jdk16/jdb_options/webrev/
> > > > >
> > > > > Some background:
> > > > > when jdb launches debuggee process it passes java options from
> > > > > "options" value for CommandLineLaunch connector and forward
> > > > > options specified before command.
> > > > >
> > > > > The fix solves several discovered issues:
> > > > > - proper handling of java options with spaces
> > > > > - if both way are used to specify java options, forwarded options
> > > > > override options from "options" value
> > > > >
> > > > > VMConnection class implements tricky logic for "options" field
> > > > > parsing for JFR needs (handling of single and double quotes). I
> > > > > decided to keep it as is to avoid massive test failures with JFR
> > > > > (there is no test coverage for this functionality and I'm not sure
> > > > > I understand all requirements).
> > > > >
> > > > > --alex
> > > >
> >
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic