From eric at metricspace.net Thu Mar 1 01:36:23 2018 From: eric at metricspace.net (Eric McCorkle) Date: Wed, 28 Feb 2018 20:36:23 -0500 Subject: Better jcov integration In-Reply-To: <645767c7-9ced-0b52-acbb-e9d6fc01d005@oracle.com> References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> <5A971936.2070707@oracle.com> <645767c7-9ced-0b52-acbb-e9d6fc01d005@oracle.com> Message-ID: As it stands now, I end up needing both jcov.jar and jcov_file_saver.jar in the build process (admittedly in a somewhat un-Maven-like manner). The plugin build process right now ends up unpacking the main jcov jar into the classes directory before it builds the plugin. My first thought was to just mirror the jcov source and build it, but unfortunately that didn't work. It seems Maven trips over itself trying to process ASM 6.0 jars, something about not being able to deal with module info correctly. I suspect that will be corrected in time, but I wanted to get things working in the now. This requires a somewhat ugly hack of deploying the jcov jar to whatever Maven environment you use to build the plugin. Now, I also have to rely on tools.jar, but I do that as a "system" dependency, which is expected to be installed on whatever machine uses the plugin (you can't, to my knowledge, use jcov with a third-party JRE installation). That presents a way out: if there was something like a jcov installer that placed the jars somewhere in JAVA_HOME (there may well already be), then you could call the jcov jars a system dependency as well. Also, the file saver jar has to be included as a resource. Curiously, putting the main jcov jar on the classpath of an instrumented application results in no coverage information being saved (despite file saver seemingly being a subset of the classes). So at present, the plugin is more a consumer of the jars produced by the jcov build. On 02/28/2018 16:12, Kevin Looney wrote: > Seconded! > > Alexey and I had a very similar discussion this morning, and came up > with some pseudo-priorities: > > 1.) Follow any Oracle mandates regarding external dependencies > 2.) Limit-liability within a (little-p) project by keeping > plugin/external-dependency related code separate/branched from the core > of the project. > > It might be nice to have a convention across all code-tools, like a > "plugins directory".?? I'm not sure if 'plugins' is the right name, but > that certainly is one category of external dependencies. > > In any case, I'm not sure which way to go for us on support for Maven > (we are already inconsistent in support, since we provided something for > SigTest - on Bill Shannon's request).? Still leaning towards Oracle's > mandate against (not sure I wish to fight with Legal over that). > > Thanks, > Kevin > > On 2/28/18 1:03 PM, Jonathan Gibbons wrote: >> Alexey, Eric, >> >> Maurizio set a useful and relevant precedent when he contributed the >> IntelliJ plugin for jtreg. >> >> I think it is useful to keep separate the code for a tool (like jtreg >> or JCov) from any code >> that "wraps" the functionality of a tool into a plugin for some larger >> system, such as an >> IDE or CI system, but keeping it separate does not inherently mandate >> keeping it out of >> a? Code Tools repository ... and having a "plugins" directory in a >> repo could well be a >> good way to go. It also helps keep separate any maintenance concerns >> of the primary >> functionality of the tool or library from any wrapper code that is >> specific to an external >> system, but facilitates combined building and testing where practical. >> >> -- Jon >> >> >> On 02/28/2018 12:20 PM, Alexey Fedorchenko wrote: >>> Hello, Eric! >>> >>> Thank you for the report. I have added an issue for your request [1]. >>> We will address it, I also think that having more report formats is a >>> good suggestion. >>> >>> A few thoughts about the original problem of adding JCov to CI >>> (Jenkins): >>> - use html publisher plugin to show JCov html report >>> - plot build data with plot plugin to look at the coverage trend for >>> builds >>> ( it will require using grep and sed to get data from >>> overview-summary.html to plot.csv ) >>> - create JCov plugin for Jenkins. >>> >>> The latest item and Maven plugin opens a little bit bigger discussion >>> for Code Tools projects: >>> Could we have tool's plugins sources in tool?s repository? >>> >>> Thank you. >>> >>> [1] https://bugs.openjdk.java.net/browse/CODETOOLS-7902125 >>> >>> ?Alexey >>> >>>> On Feb 28, 2018, at 4:42 AM, Eric McCorkle >>> > wrote: >>>> >>>> Hello everyone, >>>> >>>> I recently found myself needing better integration of jcov into various >>>> build/testing tools, so I did two things.? First, I modified the jcov >>>> tool to generate a report in the Cobertura XML format, which is used by >>>> Jenkins and other tools as an input format.? While these reports are >>>> inferior in my opinion to the HTML reports jcov generates, they do >>>> allow >>>> integration with other tools and CI systems.? Therefore, I think >>>> providing this functionality would likely encourage more people to use >>>> jcov over the alternatives. >>>> >>>> I've attached the patch for this modification here, if anyone would >>>> like >>>> to review it. >>>> >>>> >>>> I've also mostly wrangled the Maven plugin API to create a plugin for >>>> using jcov in a Maven project (however, there is one remaining issue >>>> with documentation generation that I need to correct before I call the >>>> plugin "finished").? I'm not sure if that would be something that would >>>> be added to codetools, if the group ID should be something like >>>> "org.openjdk", or what else ought to be done about it.? I will gladly >>>> contribute the code if there's a desire to adopt it. >>>> >>> >> > From eric at metricspace.net Thu Mar 1 01:41:48 2018 From: eric at metricspace.net (Eric McCorkle) Date: Wed, 28 Feb 2018 20:41:48 -0500 Subject: Better jcov integration In-Reply-To: References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> Message-ID: <7826363d-1b66-bd26-5a4b-2617c5d988b8@metricspace.net> Definitely worth considering. If you have source repositories for those plugins, it could probably help me figure out the documentation-generation issue that I have. On 02/28/2018 08:13, Martijn Verburg wrote: > Hi Eric, > > If it can?t be accepted as an net.openjdk project then we could host it > at AdoptOpenJDK (we already have some OpenJDK related Maven plugins > there for example). > > I?ll let Jonathan et al comment on the rest. > > Cheers, > Martijn > > On Wed, 28 Feb 2018 at 12:43, Eric McCorkle > wrote: > > Hello everyone, > > I recently found myself needing better integration of jcov into various > build/testing tools, so I did two things.? First, I modified the jcov > tool to generate a report in the Cobertura XML format, which is used by > Jenkins and other tools as an input format.? While these reports are > inferior in my opinion to the HTML reports jcov generates, they do allow > integration with other tools and CI systems.? Therefore, I think > providing this functionality would likely encourage more people to use > jcov over the alternatives. > > I've attached the patch for this modification here, if anyone would like > to review it. > > > I've also mostly wrangled the Maven plugin API to create a plugin for > using jcov in a Maven project (however, there is one remaining issue > with documentation generation that I need to correct before I call the > plugin "finished").? I'm not sure if that would be something that would > be added to codetools, if the group ID should be something like > "org.openjdk", or what else ought to be done about it.? I will gladly > contribute the code if there's a desire to adopt it. > > -- > Cheers, Martijn (Sent from Gmail Mobile) From eric at metricspace.net Thu Mar 1 01:49:19 2018 From: eric at metricspace.net (Eric McCorkle) Date: Wed, 28 Feb 2018 20:49:19 -0500 Subject: Better jcov integration In-Reply-To: <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> Message-ID: I should mention that I noticed that Jenkins at least doesn't seem to highlight the source in the coverage reports generated by the current patch. I'm going to look into it a bit more. On 02/28/2018 15:20, Alexey Fedorchenko wrote: > Hello, Eric! > > Thank you for the report. I have added an issue for your request [1]. > We will address it, I also think that having more report formats is a > good suggestion. > > A few thoughts about the original problem of adding JCov to CI (Jenkins): > - use html publisher plugin to show JCov html report > - plot build data with plot plugin to look at the coverage trend for builds? > ( it will require using grep and sed to get data from > overview-summary.html to plot.csv ) > - create JCov plugin for Jenkins. > > The latest item and Maven plugin opens a little bit bigger discussion > for Code Tools projects: > Could we have tool's plugins sources in tool?s repository? > > Thank you. > > [1]?https://bugs.openjdk.java.net/browse/CODETOOLS-7902125 > > ?Alexey > >> On Feb 28, 2018, at 4:42 AM, Eric McCorkle > > wrote: >> >> Hello everyone, >> >> I recently found myself needing better integration of jcov into various >> build/testing tools, so I did two things. ?First, I modified the jcov >> tool to generate a report in the Cobertura XML format, which is used by >> Jenkins and other tools as an input format. ?While these reports are >> inferior in my opinion to the HTML reports jcov generates, they do allow >> integration with other tools and CI systems. ?Therefore, I think >> providing this functionality would likely encourage more people to use >> jcov over the alternatives. >> >> I've attached the patch for this modification here, if anyone would like >> to review it. >> >> >> I've also mostly wrangled the Maven plugin API to create a plugin for >> using jcov in a Maven project (however, there is one remaining issue >> with documentation generation that I need to correct before I call the >> plugin "finished"). ?I'm not sure if that would be something that would >> be added to codetools, if the group ID should be something like >> "org.openjdk", or what else ought to be done about it. ?I will gladly >> contribute the code if there's a desire to adopt it. >> > From eric at metricspace.net Thu Mar 1 13:43:58 2018 From: eric at metricspace.net (Eric McCorkle) Date: Thu, 1 Mar 2018 08:43:58 -0500 Subject: Better jcov integration In-Reply-To: References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> Message-ID: <7f1a22f8-f64d-5d19-55b7-0d65caa175da@metricspace.net> I did manage to figure out why Jenkins wasn't highlighting the code. It seems that the "lines" fields in method entries need to also be duplicated in the "class" entries. The attached diff contains the changes. On 02/28/2018 20:49, Eric McCorkle wrote: > I should mention that I noticed that Jenkins at least doesn't seem to > highlight the source in the coverage reports generated by the current > patch. > > I'm going to look into it a bit more. > > On 02/28/2018 15:20, Alexey Fedorchenko wrote: >> Hello, Eric! >> >> Thank you for the report. I have added an issue for your request [1]. >> We will address it, I also think that having more report formats is a >> good suggestion. >> >> A few thoughts about the original problem of adding JCov to CI (Jenkins): >> - use html publisher plugin to show JCov html report >> - plot build data with plot plugin to look at the coverage trend for builds? >> ( it will require using grep and sed to get data from >> overview-summary.html to plot.csv ) >> - create JCov plugin for Jenkins. >> >> The latest item and Maven plugin opens a little bit bigger discussion >> for Code Tools projects: >> Could we have tool's plugins sources in tool?s repository? >> >> Thank you. >> >> [1]?https://bugs.openjdk.java.net/browse/CODETOOLS-7902125 >> >> ?Alexey >> >>> On Feb 28, 2018, at 4:42 AM, Eric McCorkle >> > wrote: >>> >>> Hello everyone, >>> >>> I recently found myself needing better integration of jcov into various >>> build/testing tools, so I did two things. ?First, I modified the jcov >>> tool to generate a report in the Cobertura XML format, which is used by >>> Jenkins and other tools as an input format. ?While these reports are >>> inferior in my opinion to the HTML reports jcov generates, they do allow >>> integration with other tools and CI systems. ?Therefore, I think >>> providing this functionality would likely encourage more people to use >>> jcov over the alternatives. >>> >>> I've attached the patch for this modification here, if anyone would like >>> to review it. >>> >>> >>> I've also mostly wrangled the Maven plugin API to create a plugin for >>> using jcov in a Maven project (however, there is one remaining issue >>> with documentation generation that I need to correct before I call the >>> plugin "finished"). ?I'm not sure if that would be something that would >>> be added to codetools, if the group ID should be something like >>> "org.openjdk", or what else ought to be done about it. ?I will gladly >>> contribute the code if there's a desire to adopt it. >>> >> -------------- next part -------------- A non-text attachment was scrubbed... Name: cobertura.diff Type: text/x-patch Size: 20860 bytes Desc: not available URL: From martijnverburg at gmail.com Thu Mar 1 14:11:13 2018 From: martijnverburg at gmail.com (Martijn Verburg) Date: Thu, 1 Mar 2018 14:11:13 +0000 Subject: Better jcov integration In-Reply-To: <7826363d-1b66-bd26-5a4b-2617c5d988b8@metricspace.net> References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <7826363d-1b66-bd26-5a4b-2617c5d988b8@metricspace.net> Message-ID: Hi Eric, What's your GitHub user id? I'll add you to the AdoptOpenJDK org and you can take a look. I think the maven jdeps plugin is there as well as a new jsplitpkgscan tool we're working on. Cheers, Martijn On 1 March 2018 at 01:41, Eric McCorkle wrote: > Definitely worth considering. > > If you have source repositories for those plugins, it could probably > help me figure out the documentation-generation issue that I have. > > On 02/28/2018 08:13, Martijn Verburg wrote: > > Hi Eric, > > > > If it can?t be accepted as an net.openjdk project then we could host it > > at AdoptOpenJDK (we already have some OpenJDK related Maven plugins > > there for example). > > > > I?ll let Jonathan et al comment on the rest. > > > > Cheers, > > Martijn > > > > On Wed, 28 Feb 2018 at 12:43, Eric McCorkle > > wrote: > > > > Hello everyone, > > > > I recently found myself needing better integration of jcov into > various > > build/testing tools, so I did two things. First, I modified the jcov > > tool to generate a report in the Cobertura XML format, which is used > by > > Jenkins and other tools as an input format. While these reports are > > inferior in my opinion to the HTML reports jcov generates, they do > allow > > integration with other tools and CI systems. Therefore, I think > > providing this functionality would likely encourage more people to > use > > jcov over the alternatives. > > > > I've attached the patch for this modification here, if anyone would > like > > to review it. > > > > > > I've also mostly wrangled the Maven plugin API to create a plugin for > > using jcov in a Maven project (however, there is one remaining issue > > with documentation generation that I need to correct before I call > the > > plugin "finished"). I'm not sure if that would be something that > would > > be added to codetools, if the group ID should be something like > > "org.openjdk", or what else ought to be done about it. I will gladly > > contribute the code if there's a desire to adopt it. > > > > -- > > Cheers, Martijn (Sent from Gmail Mobile) > From alexey.fedorchenko at oracle.com Sat Mar 3 01:49:56 2018 From: alexey.fedorchenko at oracle.com (Alexey Fedorchenko) Date: Fri, 2 Mar 2018 17:49:56 -0800 Subject: Better jcov integration In-Reply-To: <7f1a22f8-f64d-5d19-55b7-0d65caa175da@metricspace.net> References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> <7f1a22f8-f64d-5d19-55b7-0d65caa175da@metricspace.net> Message-ID: Hello, Eric! I will look at the patch more carefully next week, a few things that come to my mind for now: - You have added CoberturaReportGeneratorSPI, but never used it. It looks like after changes in the DefaultReportGeneratorSPI you do not need this additional class. - There is an assumption in the CoberturaReportGenerator that options.getSrcRootPaths() is not null, but if the user generates report by the command like: java -jar jcov.jar repgen -format cobertura -o cobertura.xml //without specifying the ?src? value // the user will get NullPointerException. (without sources only ?filename? attributes are changed from the full path to the names, the rest cobertura-style report looks the same). Could you, please, subscribe to the watchers list for CODETOOLS-7902125 to continue this discussion there. Thank you. ?Alexey > On Mar 1, 2018, at 5:43 AM, Eric McCorkle wrote: > > I did manage to figure out why Jenkins wasn't highlighting the code. It > seems that the "lines" fields in method entries need to also be > duplicated in the "class" entries. > > The attached diff contains the changes. > > On 02/28/2018 20:49, Eric McCorkle wrote: >> I should mention that I noticed that Jenkins at least doesn't seem to >> highlight the source in the coverage reports generated by the current >> patch. >> >> I'm going to look into it a bit more. >> >> On 02/28/2018 15:20, Alexey Fedorchenko wrote: >>> Hello, Eric! >>> >>> Thank you for the report. I have added an issue for your request [1]. >>> We will address it, I also think that having more report formats is a >>> good suggestion. >>> >>> A few thoughts about the original problem of adding JCov to CI (Jenkins): >>> - use html publisher plugin to show JCov html report >>> - plot build data with plot plugin to look at the coverage trend for builds >>> ( it will require using grep and sed to get data from >>> overview-summary.html to plot.csv ) >>> - create JCov plugin for Jenkins. >>> >>> The latest item and Maven plugin opens a little bit bigger discussion >>> for Code Tools projects: >>> Could we have tool's plugins sources in tool?s repository? >>> >>> Thank you. >>> >>> [1] https://bugs.openjdk.java.net/browse/CODETOOLS-7902125 >>> >>> ?Alexey >>> >>>> On Feb 28, 2018, at 4:42 AM, Eric McCorkle >>> > wrote: >>>> >>>> Hello everyone, >>>> >>>> I recently found myself needing better integration of jcov into various >>>> build/testing tools, so I did two things. First, I modified the jcov >>>> tool to generate a report in the Cobertura XML format, which is used by >>>> Jenkins and other tools as an input format. While these reports are >>>> inferior in my opinion to the HTML reports jcov generates, they do allow >>>> integration with other tools and CI systems. Therefore, I think >>>> providing this functionality would likely encourage more people to use >>>> jcov over the alternatives. >>>> >>>> I've attached the patch for this modification here, if anyone would like >>>> to review it. >>>> >>>> >>>> I've also mostly wrangled the Maven plugin API to create a plugin for >>>> using jcov in a Maven project (however, there is one remaining issue >>>> with documentation generation that I need to correct before I call the >>>> plugin "finished"). I'm not sure if that would be something that would >>>> be added to codetools, if the group ID should be something like >>>> "org.openjdk", or what else ought to be done about it. I will gladly >>>> contribute the code if there's a desire to adopt it. >>>> >>> > From mdegtyarev at gmail.com Sun Mar 4 05:22:07 2018 From: mdegtyarev at gmail.com (Maxim Degtyarev) Date: Sun, 4 Mar 2018 08:22:07 +0300 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm Message-ID: The following patch address quoted class names handling bug in `asmtools jasm`. Quick example: Following code will produce class `TestQuoted` in top-level package ignoring package, specified by the "package" statement. After removing quotes around class name resulting class file will contain class `pkg.TestQuoted` as expected. package pkg; super public class "TestQuoted" version 52:0 { public Method "":"()V" stack 1 locals 1 { aload_0; invokespecial Method java/lang/Object."":"()V"; return; } } // end Class TestQuoted From kevin.looney at oracle.com Tue Mar 6 15:42:45 2018 From: kevin.looney at oracle.com (Kevin Looney) Date: Tue, 6 Mar 2018 07:42:45 -0800 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: References: Message-ID: Hello Maxim, Thanks for identifying the issue in asmtools. > The following patch address quoted class names handling bug in `asmtools jasm`. Did you forget to attach the patch? - or are you simply reporting a problem without a fix? Thanks in advance, Regards, Kevin L Manager - Conformance tools On 3/3/18 9:22 PM, Maxim Degtyarev wrote: > The following patch address quoted class names handling bug in `asmtools jasm`. > > Quick example: Following code will produce class `TestQuoted` in > top-level package ignoring package, specified by the "package" > statement. > After removing quotes around class name resulting class file will > contain class `pkg.TestQuoted` as expected. > > > package pkg; > > super public class "TestQuoted" > version 52:0 > { > > > public Method "":"()V" > stack 1 locals 1 > { > aload_0; > invokespecial Method java/lang/Object."":"()V"; > return; > } > > } // end Class TestQuoted -- kevin.looney at oracle.com From mdegtyarev at gmail.com Tue Mar 6 16:26:40 2018 From: mdegtyarev at gmail.com (Maxim Degtyarev) Date: Tue, 6 Mar 2018 19:26:40 +0300 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: References: Message-ID: It seems file attach lost somewhere in the middle. Does this mailing list support attaches? Here is the patch: ===== # HG changeset patch # User maccimo # Date 1520137328 -10800 # Sun Mar 04 07:22:08 2018 +0300 # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4 # Parent 872f704a0d9a0198ae7ce1ae12a676cb180fd424 Fix quoted class names handling bug. Quoted class names was not prepended by proper package name even if *.jasm file contains "package" statement. diff --git a/src/org/openjdk/asmtools/jasm/Parser.java b/src/org/openjdk/asmtools/jasm/Parser.java --- a/src/org/openjdk/asmtools/jasm/Parser.java +++ b/src/org/openjdk/asmtools/jasm/Parser.java @@ -416,6 +416,7 @@ case STRINGVAL: v = scanner.stringValue; scanner.scan(); + v = prependPackage(v, uncond); return pool.FindCellAsciz(v); // Some identifiers might coincide with token names. // these should be OK to use as identifier names. @@ -435,12 +436,7 @@ case IDENT: v = scanner.idValue; scanner.scan(); - if (uncond || (scanner.token == Token.FIELD)) { - if ((!v.contains("/")) // class identifier doesn't contain "/" - && (!v.contains("["))){ // class identifier doesn't contain "[" - v = pkgPrefix + v; // add package - } - } + v = prependPackage(v, uncond); return pool.FindCellAsciz(v); default: ConstType key = Tables.tag(scanner.token.value()); @@ -450,6 +446,16 @@ } } + private String prependPackage(String className, boolean uncond) { + if (uncond || (scanner.token == Token.FIELD)) { + if ((!className.contains("/")) // class identifier doesn't contain "/" + && (!className.contains("["))){ // class identifier doesn't contain "[" + className = pkgPrefix + className; // add package + } + } + return className; + } + /** * Parse a signed integer of size bytes long. ===== 2018-03-06 18:42 GMT+03:00 Kevin Looney : > Hello Maxim, > > Thanks for identifying the issue in asmtools. > >> The following patch address quoted class names handling bug in `asmtools >> jasm`. > > Did you forget to attach the patch? - or are you simply reporting a problem > without a fix? > > Thanks in advance, Regards, > Kevin L > Manager - Conformance tools > > > > On 3/3/18 9:22 PM, Maxim Degtyarev wrote: >> >> The following patch address quoted class names handling bug in `asmtools >> jasm`. >> >> Quick example: Following code will produce class `TestQuoted` in >> top-level package ignoring package, specified by the "package" >> statement. >> After removing quotes around class name resulting class file will >> contain class `pkg.TestQuoted` as expected. >> >> >> package pkg; >> >> super public class "TestQuoted" >> version 52:0 >> { >> >> >> public Method "":"()V" >> stack 1 locals 1 >> { >> aload_0; >> invokespecial Method java/lang/Object."":"()V"; >> return; >> } >> >> } // end Class TestQuoted > > > > -- > kevin.looney at oracle.com > From kevin.looney at oracle.com Tue Mar 6 16:35:43 2018 From: kevin.looney at oracle.com (Kevin Looney) Date: Tue, 6 Mar 2018 08:35:43 -0800 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: References: Message-ID: <84b54ca5-bb7c-7060-e0ad-99634016aa76@oracle.com> Hi Maxim, Hmm - our mailer supports attachments.??? Another mystery ..... OK - this inline diff will work fine.? Our AsmTools moderator will evaluate your patch. Thanks again for the contribution! Regards, Kevin L On 3/6/18 8:26 AM, Maxim Degtyarev wrote: > It seems file attach lost somewhere in the middle. Does this mailing > list support attaches? > Here is the patch: > > ===== > > # HG changeset patch > # User maccimo > # Date 1520137328 -10800 > # Sun Mar 04 07:22:08 2018 +0300 > # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4 > # Parent 872f704a0d9a0198ae7ce1ae12a676cb180fd424 > Fix quoted class names handling bug. > Quoted class names was not prepended by proper package name even if > *.jasm file contains "package" statement. > > diff --git a/src/org/openjdk/asmtools/jasm/Parser.java > b/src/org/openjdk/asmtools/jasm/Parser.java > --- a/src/org/openjdk/asmtools/jasm/Parser.java > +++ b/src/org/openjdk/asmtools/jasm/Parser.java > @@ -416,6 +416,7 @@ > case STRINGVAL: > v = scanner.stringValue; > scanner.scan(); > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > // Some identifiers might coincide with token names. > // these should be OK to use as identifier names. > @@ -435,12 +436,7 @@ > case IDENT: > v = scanner.idValue; > scanner.scan(); > - if (uncond || (scanner.token == Token.FIELD)) { > - if ((!v.contains("/")) // class > identifier doesn't contain "/" > - && (!v.contains("["))){ // class > identifier doesn't contain "[" > - v = pkgPrefix + v; // add package > - } > - } > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > default: > ConstType key = Tables.tag(scanner.token.value()); > @@ -450,6 +446,16 @@ > } > } > > + private String prependPackage(String className, boolean uncond) { > + if (uncond || (scanner.token == Token.FIELD)) { > + if ((!className.contains("/")) // class > identifier doesn't contain "/" > + && (!className.contains("["))){ // class > identifier doesn't contain "[" > + className = pkgPrefix + className; // add package > + } > + } > + return className; > + } > + > > /** > * Parse a signed integer of size bytes long. > > > ===== > > > 2018-03-06 18:42 GMT+03:00 Kevin Looney : >> Hello Maxim, >> >> Thanks for identifying the issue in asmtools. >> >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >> Did you forget to attach the patch? - or are you simply reporting a problem >> without a fix? >> >> Thanks in advance, Regards, >> Kevin L >> Manager - Conformance tools >> >> >> >> On 3/3/18 9:22 PM, Maxim Degtyarev wrote: >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >>> >>> Quick example: Following code will produce class `TestQuoted` in >>> top-level package ignoring package, specified by the "package" >>> statement. >>> After removing quotes around class name resulting class file will >>> contain class `pkg.TestQuoted` as expected. >>> >>> >>> package pkg; >>> >>> super public class "TestQuoted" >>> version 52:0 >>> { >>> >>> >>> public Method "":"()V" >>> stack 1 locals 1 >>> { >>> aload_0; >>> invokespecial Method java/lang/Object."":"()V"; >>> return; >>> } >>> >>> } // end Class TestQuoted >> >> >> -- >> kevin.looney at oracle.com >> -- kevin.looney at oracle.com From Roger.Riggs at Oracle.com Tue Mar 6 18:46:41 2018 From: Roger.Riggs at Oracle.com (Roger Riggs) Date: Tue, 6 Mar 2018 13:46:41 -0500 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: <84b54ca5-bb7c-7060-e0ad-99634016aa76@oracle.com> References: <84b54ca5-bb7c-7060-e0ad-99634016aa76@oracle.com> Message-ID: fyi, Attachments are supported... Settings for pass_mime_types and filter_filename_extensions are controlled by the list administrators and moderators. multipart/mixed multipart/alternative text/plain text/x-diff text/x-patch message/rfc822 multipart/signed It the attachment is not recognized, it may be stripped. fyi, Roger On 3/6/2018 11:35 AM, Kevin Looney wrote: > Hi Maxim, > > Hmm - our mailer supports attachments.??? Another mystery ..... > > OK - this inline diff will work fine.? Our AsmTools moderator will > evaluate your patch. > > Thanks again for the contribution! > > Regards, > Kevin L > > On 3/6/18 8:26 AM, Maxim Degtyarev wrote: >> It seems file attach lost somewhere in the middle. Does this mailing >> list support attaches? >> Here is the patch: >> >> ===== >> >> # HG changeset patch >> # User maccimo >> # Date 1520137328 -10800 >> #????? Sun Mar 04 07:22:08 2018 +0300 >> # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4 >> # Parent? 872f704a0d9a0198ae7ce1ae12a676cb180fd424 >> Fix quoted class names handling bug. >> Quoted class names was not prepended by proper package name even if >> *.jasm file contains "package" statement. >> >> diff --git a/src/org/openjdk/asmtools/jasm/Parser.java >> b/src/org/openjdk/asmtools/jasm/Parser.java >> --- a/src/org/openjdk/asmtools/jasm/Parser.java >> +++ b/src/org/openjdk/asmtools/jasm/Parser.java >> @@ -416,6 +416,7 @@ >> ????????????? case STRINGVAL: >> ????????????????? v = scanner.stringValue; >> ????????????????? scanner.scan(); >> +??????????????? v = prependPackage(v, uncond); >> ????????????????? return pool.FindCellAsciz(v); >> ????????????????? // Some identifiers might coincide with token names. >> ????????????????? // these should be OK to use as identifier names. >> @@ -435,12 +436,7 @@ >> ????????????? case IDENT: >> ????????????????? v = scanner.idValue; >> ????????????????? scanner.scan(); >> -??????????????? if (uncond || (scanner.token == Token.FIELD)) { >> -??????????????????? if ((!v.contains("/"))???????????? // class >> identifier doesn't contain "/" >> -??????????????????????????? && (!v.contains("["))){ // class >> identifier doesn't contain "[" >> -??????????????????????? v = pkgPrefix + v; // add package >> -??????????????????? } >> -??????????????? } >> +??????????????? v = prependPackage(v, uncond); >> ????????????????? return pool.FindCellAsciz(v); >> ????????????? default: >> ????????????????? ConstType key = Tables.tag(scanner.token.value()); >> @@ -450,6 +446,16 @@ >> ????????? } >> ????? } >> >> +??? private String prependPackage(String className, boolean uncond) { >> +??????? if (uncond || (scanner.token == Token.FIELD)) { >> +??????????? if ((!className.contains("/"))???????????? // class >> identifier doesn't contain "/" >> +??????????????????? && (!className.contains("["))){ // class >> identifier doesn't contain "[" >> +??????????????? className = pkgPrefix + className; // add package >> +??????????? } >> +??????? } >> +??????? return className; >> +??? } >> + >> >> ????? /** >> ?????? * Parse a signed integer of size bytes long. >> >> >> ===== >> >> >> 2018-03-06 18:42 GMT+03:00 Kevin Looney : >>> Hello Maxim, >>> >>> Thanks for identifying the issue in asmtools. >>> >>>> The following patch address quoted class names handling bug in >>>> `asmtools >>>> jasm`. >>> Did you forget to attach the patch? - or are you simply reporting a >>> problem >>> without a fix? >>> >>> Thanks in advance, Regards, >>> Kevin L >>> Manager - Conformance tools >>> >>> >>> >>> On 3/3/18 9:22 PM, Maxim Degtyarev wrote: >>>> The following patch address quoted class names handling bug in >>>> `asmtools >>>> jasm`. >>>> >>>> Quick example: Following code will produce class `TestQuoted` in >>>> top-level package ignoring package, specified by the "package" >>>> statement. >>>> After removing quotes around class name resulting class file will >>>> contain class `pkg.TestQuoted` as expected. >>>> >>>> >>>> package? pkg; >>>> >>>> super public class "TestQuoted" >>>> ????? version 52:0 >>>> { >>>> >>>> >>>> public Method "":"()V" >>>> ????? stack 1 locals 1 >>>> { >>>> ????????? aload_0; >>>> ????????? invokespecial??? Method java/lang/Object."":"()V"; >>>> ????????? return; >>>> } >>>> >>>> } // end Class TestQuoted >>> >>> >>> -- >>> kevin.looney at oracle.com >>> > From jonathan.gibbons at oracle.com Tue Mar 6 18:58:54 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 6 Mar 2018 10:58:54 -0800 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: References: Message-ID: <21998049-66fe-5793-a99d-4eceaa7e3f63@oracle.com> Maxim, In general, OpenJDK mailing lists do not permit attachments, but I believe diffs and patches are permitted with an appropriate extension. -- Jon On 3/6/18 8:26 AM, Maxim Degtyarev wrote: > It seems file attach lost somewhere in the middle. Does this mailing > list support attaches? > Here is the patch: > > ===== > > # HG changeset patch > # User maccimo > # Date 1520137328 -10800 > # Sun Mar 04 07:22:08 2018 +0300 > # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4 > # Parent 872f704a0d9a0198ae7ce1ae12a676cb180fd424 > Fix quoted class names handling bug. > Quoted class names was not prepended by proper package name even if > *.jasm file contains "package" statement. > > diff --git a/src/org/openjdk/asmtools/jasm/Parser.java > b/src/org/openjdk/asmtools/jasm/Parser.java > --- a/src/org/openjdk/asmtools/jasm/Parser.java > +++ b/src/org/openjdk/asmtools/jasm/Parser.java > @@ -416,6 +416,7 @@ > case STRINGVAL: > v = scanner.stringValue; > scanner.scan(); > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > // Some identifiers might coincide with token names. > // these should be OK to use as identifier names. > @@ -435,12 +436,7 @@ > case IDENT: > v = scanner.idValue; > scanner.scan(); > - if (uncond || (scanner.token == Token.FIELD)) { > - if ((!v.contains("/")) // class > identifier doesn't contain "/" > - && (!v.contains("["))){ // class > identifier doesn't contain "[" > - v = pkgPrefix + v; // add package > - } > - } > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > default: > ConstType key = Tables.tag(scanner.token.value()); > @@ -450,6 +446,16 @@ > } > } > > + private String prependPackage(String className, boolean uncond) { > + if (uncond || (scanner.token == Token.FIELD)) { > + if ((!className.contains("/")) // class > identifier doesn't contain "/" > + && (!className.contains("["))){ // class > identifier doesn't contain "[" > + className = pkgPrefix + className; // add package > + } > + } > + return className; > + } > + > > /** > * Parse a signed integer of size bytes long. > > > ===== > > > 2018-03-06 18:42 GMT+03:00 Kevin Looney : >> Hello Maxim, >> >> Thanks for identifying the issue in asmtools. >> >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >> Did you forget to attach the patch? - or are you simply reporting a problem >> without a fix? >> >> Thanks in advance, Regards, >> Kevin L >> Manager - Conformance tools >> >> >> >> On 3/3/18 9:22 PM, Maxim Degtyarev wrote: >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >>> >>> Quick example: Following code will produce class `TestQuoted` in >>> top-level package ignoring package, specified by the "package" >>> statement. >>> After removing quotes around class name resulting class file will >>> contain class `pkg.TestQuoted` as expected. >>> >>> >>> package pkg; >>> >>> super public class "TestQuoted" >>> version 52:0 >>> { >>> >>> >>> public Method "":"()V" >>> stack 1 locals 1 >>> { >>> aload_0; >>> invokespecial Method java/lang/Object."":"()V"; >>> return; >>> } >>> >>> } // end Class TestQuoted >> >> >> -- >> kevin.looney at oracle.com >> From mark.reinhold at oracle.com Tue Mar 6 19:04:31 2018 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Tue, 06 Mar 2018 11:04:31 -0800 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: <21998049-66fe-5793-a99d-4eceaa7e3f63@oracle.com> References: <21998049-66fe-5793-a99d-4eceaa7e3f63@oracle.com> Message-ID: <20180306110431.333142910@eggemoggin.niobe.net> 2018/3/6 10:58:54 -0800, jonathan.gibbons at oracle.com: > In general, OpenJDK mailing lists do not permit attachments, but > I believe diffs and patches are permitted with an appropriate > extension. Most OpenJDK mailing lists, including this one (code-tools-dev), allow these attachment types: text/plain text/x-diff text/x-patch message/rfc822 Attachments with the following filename extensions are dropped: exe bat cmd com pif scr vbs cpl - Mark From mdegtyarev at gmail.com Wed Mar 7 02:50:57 2018 From: mdegtyarev at gmail.com (Maxim Degtyarev) Date: Wed, 7 Mar 2018 05:50:57 +0300 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: <20180306110431.333142910@eggemoggin.niobe.net> References: <21998049-66fe-5793-a99d-4eceaa7e3f63@oracle.com> <20180306110431.333142910@eggemoggin.niobe.net> Message-ID: 2018-03-06 22:04 GMT+03:00 : > 2018/3/6 10:58:54 -0800, jonathan.gibbons at oracle.com: >> In general, OpenJDK mailing lists do not permit attachments, but >> I believe diffs and patches are permitted with an appropriate >> extension. > > Most OpenJDK mailing lists, including this one (code-tools-dev), > allow these attachment types: > > text/plain > text/x-diff > text/x-patch > message/rfc822 > Probably this is the cause. GMail web UI set "application/octet-stream" as a mime-type for attached file: --94eb2c1cda70024c6c05668f64cc Content-Type: application/octet-stream; name="jasm-quted-classname.diff" Content-Disposition: attachment; filename="jasm-quted-classname.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jeca6lm80 From alexey.fedorchenko at oracle.com Wed Mar 7 20:26:25 2018 From: alexey.fedorchenko at oracle.com (Alexey Fedorchenko) Date: Wed, 7 Mar 2018 12:26:25 -0800 Subject: [PATCH][asmtools] Fix incorrect handling of quoted class names by jasm In-Reply-To: References: Message-ID: Hello, Maxim! The patch was reviewed by Leonid Kuskov and pushed to ASMTools repository. Thank you. ?Alexey > On Mar 6, 2018, at 8:26 AM, Maxim Degtyarev wrote: > > It seems file attach lost somewhere in the middle. Does this mailing > list support attaches? > Here is the patch: > > ===== > > # HG changeset patch > # User maccimo > # Date 1520137328 -10800 > # Sun Mar 04 07:22:08 2018 +0300 > # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4 > # Parent 872f704a0d9a0198ae7ce1ae12a676cb180fd424 > Fix quoted class names handling bug. > Quoted class names was not prepended by proper package name even if > *.jasm file contains "package" statement. > > diff --git a/src/org/openjdk/asmtools/jasm/Parser.java > b/src/org/openjdk/asmtools/jasm/Parser.java > --- a/src/org/openjdk/asmtools/jasm/Parser.java > +++ b/src/org/openjdk/asmtools/jasm/Parser.java > @@ -416,6 +416,7 @@ > case STRINGVAL: > v = scanner.stringValue; > scanner.scan(); > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > // Some identifiers might coincide with token names. > // these should be OK to use as identifier names. > @@ -435,12 +436,7 @@ > case IDENT: > v = scanner.idValue; > scanner.scan(); > - if (uncond || (scanner.token == Token.FIELD)) { > - if ((!v.contains("/")) // class > identifier doesn't contain "/" > - && (!v.contains("["))){ // class > identifier doesn't contain "[" > - v = pkgPrefix + v; // add package > - } > - } > + v = prependPackage(v, uncond); > return pool.FindCellAsciz(v); > default: > ConstType key = Tables.tag(scanner.token.value()); > @@ -450,6 +446,16 @@ > } > } > > + private String prependPackage(String className, boolean uncond) { > + if (uncond || (scanner.token == Token.FIELD)) { > + if ((!className.contains("/")) // class > identifier doesn't contain "/" > + && (!className.contains("["))){ // class > identifier doesn't contain "[" > + className = pkgPrefix + className; // add package > + } > + } > + return className; > + } > + > > /** > * Parse a signed integer of size bytes long. > > > ===== > > > 2018-03-06 18:42 GMT+03:00 Kevin Looney : >> Hello Maxim, >> >> Thanks for identifying the issue in asmtools. >> >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >> >> Did you forget to attach the patch? - or are you simply reporting a problem >> without a fix? >> >> Thanks in advance, Regards, >> Kevin L >> Manager - Conformance tools >> >> >> >> On 3/3/18 9:22 PM, Maxim Degtyarev wrote: >>> >>> The following patch address quoted class names handling bug in `asmtools >>> jasm`. >>> >>> Quick example: Following code will produce class `TestQuoted` in >>> top-level package ignoring package, specified by the "package" >>> statement. >>> After removing quotes around class name resulting class file will >>> contain class `pkg.TestQuoted` as expected. >>> >>> >>> package pkg; >>> >>> super public class "TestQuoted" >>> version 52:0 >>> { >>> >>> >>> public Method "":"()V" >>> stack 1 locals 1 >>> { >>> aload_0; >>> invokespecial Method java/lang/Object."":"()V"; >>> return; >>> } >>> >>> } // end Class TestQuoted >> >> >> >> -- >> kevin.looney at oracle.com >> From mdegtyarev at gmail.com Mon Mar 12 23:52:50 2018 From: mdegtyarev at gmail.com (Maxim Degtyarev) Date: Tue, 13 Mar 2018 02:52:50 +0300 Subject: [PATCH][asmtools] Fix incorrect handling of some CPX2 constant pool entries by JDIS Message-ID: The proposed patch (see attached file jdis-cpx2-bug.diff.txt) address incorrect handling of some constant pool entries represented with CPX2 class by ASMTOOLS JDIS. JDIS incorrectly assume that field CPX2::value1 is always used to hold index of constant pool entry of type CONSTANT_CLASS. This assumption is valid only for entries of type CONSTANT_FIELD, CONSTANT_METHOD and CONSTANT_INTERFACEMETHOD. For CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and CONSTANT_INVOKEDYNAMIC this assumption is wrong. As a result asmtools jdis may produce malformed output for valid input. Example: public class Test { // Force `class Test` entry appear in the constant pool before InvokeDynamic entries. public Class CLASS = Test.class; private static Runnable[] workers = { () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test"), () -> System.out.println("Test") }; public static void main(String... args) { for(Runnable worker : workers) { worker.run(); } } } One of invokedynamic instructions may be rendered by jdis as invokedynamic InvokeDynamic run:"()Ljava/lang/Runnable;"; instead of invokedynamic InvokeDynamic REF_invokeStatic:java/lang/invoke/LambdaMetafactory.metafactory:"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;":run:"()Ljava/lang/Runnable;" MethodType "()V", MethodHandle REF_invokeStatic:Test.lambda$static$1:"()V", MethodType "()V"; -------------- next part -------------- # HG changeset patch # User maccimo # Date 1520880268 -10800 # Mon Mar 12 21:44:28 2018 +0300 # Node ID f5e62b0fae745f3640455513a9824c1d3a59e1be # Parent 2904229ed97ec1d90a055ad86759f867cdc5296b Fix incorrect handling of constant pool entries of type CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and CONSTANT_INVOKEDYNAMIC. diff --git a/src/org/openjdk/asmtools/jdis/ConstantPool.java b/src/org/openjdk/asmtools/jdis/ConstantPool.java --- a/src/org/openjdk/asmtools/jdis/ConstantPool.java +++ b/src/org/openjdk/asmtools/jdis/ConstantPool.java @@ -500,8 +500,9 @@ * CPX2 * * Constant entries that contain two constant-pool indices. Usually, this includes: - * CONSTANT_FIELD CONSTANT_METHOD CONSTANT_INTERFACEMETHOD CONSTANT_NAMEANDTYPE - * CONSTANT_METHODHANDLE CONSTANT_DYNAMIC CONSTANT_INVOKEDYNAMIC + * CONSTANT_NAMEANDTYPE CONSTANT_METHODHANDLE CONSTANT_DYNAMIC CONSTANT_INVOKEDYNAMIC + * + * For constant entries referencing class members use CPX2_ClassMember instead. * */ class CPX2 extends Constant { @@ -600,6 +601,23 @@ } } + /** + * CPX2_ClassMember + * + * Specialized subclass of CPX2 class for constant entries that contain two constant-pool indices + * with first index pointing to the constant pool entry of type CONSTANT_CLASS. + * + * Usually, this includes: CONSTANT_FIELD CONSTANT_METHOD CONSTANT_INTERFACEMETHOD + * + */ + class CPX2_ClassMember extends CPX2 { + + CPX2_ClassMember(TAG tagval, int cpx1, int cpx2) { + super(tagval, cpx1, cpx2); + } + + } + /* -------------------------------------------------------- */ /* ConstantPool Fields */ /** @@ -674,6 +692,8 @@ case CONSTANT_FIELD: case CONSTANT_METHOD: case CONSTANT_INTERFACEMETHOD: + pool.add(i, new CPX2_ClassMember(tagobj, in.readUnsignedShort(), in.readUnsignedShort())); + break; case CONSTANT_NAMEANDTYPE: case CONSTANT_DYNAMIC: case CONSTANT_INVOKEDYNAMIC: @@ -845,13 +865,13 @@ * * getClassName * - * Safely gets a Java class name from a ConstantClass from a CPX2 constant pool + * Safely gets a Java class name from a ConstantClass from a CPX2_ClassMember constant pool * object. (eg. Method/Field/Interface Ref) * * Returns either the Java class name, or a CP index reference string. * */ - public String getClassName(CPX2 classConst) { + public String getClassName(CPX2_ClassMember classConst) { return _getClassName(classConst.value1); } @@ -998,17 +1018,10 @@ if (cns == null) { return "#" + cpx; } - switch (cns.tag) { - case CONSTANT_METHODHANDLE: - case CONSTANT_DYNAMIC: - case CONSTANT_INVOKEDYNAMIC: - case CONSTANT_METHOD: - case CONSTANT_INTERFACEMETHOD: - case CONSTANT_FIELD: { - CPX2 cns2 = (CPX2) cns; - if (cns2.value1 == cd.this_cpx) { - cpx = cns2.value2; - } + if (cns instanceof CPX2_ClassMember) { + CPX2_ClassMember cns2 = (CPX2_ClassMember) cns; + if (cns2.value1 == cd.this_cpx) { + cpx = cns2.value2; } } return cns.tag.tagname + " " + StringValue(cpx); From jonathan.gibbons at oracle.com Tue Mar 13 19:48:37 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 13 Mar 2018 12:48:37 -0700 Subject: Result: New Code Tools Committer: Shura Iline In-Reply-To: <5A6F7B05.8090607@oracle.com> References: <5A6F7B05.8090607@oracle.com> Message-ID: <5AA82B15.6030609@oracle.com> |Voting for Alexandre (Shura) Iline [1] is now closed. Yes: 4 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. -- Jonathan Gibbons [1] http://mail.openjdk.java.net/pipermail/code-tools-dev/2018-January/000348.html| On 01/29/2018 11:50 AM, Jonathan Gibbons wrote: > |I hereby nominate Alexandre (Shura) Iline to Code Tools Committer. > > As well as his other work for JDK and JDK quality, Shura is the original > author of and primary contributor to the Code Tools "Jemmy" repositories. > ||| > http://hg.openjdk.java.net/code-tools/jemmy/v2/|||| > http://hg.openjdk.java.net/code-tools/jemmy/v3/ > > |Votes are due by the noon PST, February 12th. > > Only current Code Tools Committers [1] are eligible to vote > on this nomination. Votes must be cast in the open by replying > to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > -- Jonathan Gibbons > > [1] http://openjdk.java.net/census > [2] http://openjdk.java.net/projects/#committer-vote| > From jonathan.gibbons at oracle.com Tue Mar 13 20:01:44 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 13 Mar 2018 13:01:44 -0700 Subject: CFV: New Code Tools Committer: Maurizio Cimadamore Message-ID: <5AA82E28.7060801@oracle.com> I hereby nominate Maurizio Cimadamore to Code Tools Committer. Maurizio is one of the primary authors and now maintainer for the jtreg IntelliJ plugin.[4] He has already contributed 6 changesets to Code Tools [3], as well as his many contributions to numerous other OpenJDK projects. Votes are due by 1PM PDT, 27 March, 2018.. Only current Code Tools Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. -- Jonathan Gibbons [1] http://openjdk.java.net/census [2] http://openjdk.java.net/projects/#committer-vote [3] http://hg.openjdk.java.net/code-tools/jtreg/log?rev=mcimadamore [4] http://hg.openjdk.java.net/code-tools/jtreg/file/b5f8dbaf9dcd/plugins/idea/README.md From jonathan.gibbons at oracle.com Tue Mar 13 20:03:36 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 13 Mar 2018 13:03:36 -0700 Subject: CFV: New Code Tools Committer: Maurizio Cimadamore In-Reply-To: <5AA82E28.7060801@oracle.com> References: <5AA82E28.7060801@oracle.com> Message-ID: <5AA82E98.2000503@oracle.com> Note: yes -- Jon On 03/13/2018 01:01 PM, Jonathan Gibbons wrote: > > I hereby nominate Maurizio Cimadamore to Code Tools Committer. > > Maurizio is one of the primary authors and now maintainer for the > jtreg IntelliJ plugin.[4] > > He has already contributed 6 changesets to Code Tools [3], as well as his > many contributions to numerous other OpenJDK projects. > > Votes are due by 1PM PDT, 27 March, 2018.. > > Only current Code Tools Committers [1] are eligible to vote > on this nomination. Votes must be cast in the open by replying > to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > -- Jonathan Gibbons > > [1] http://openjdk.java.net/census > [2] http://openjdk.java.net/projects/#committer-vote > [3] http://hg.openjdk.java.net/code-tools/jtreg/log?rev=mcimadamore > [4] > http://hg.openjdk.java.net/code-tools/jtreg/file/b5f8dbaf9dcd/plugins/idea/README.md From kevin.looney at oracle.com Tue Mar 13 21:00:57 2018 From: kevin.looney at oracle.com (Kevin Looney) Date: Tue, 13 Mar 2018 14:00:57 -0700 Subject: CFV: New Code Tools Committer: Maurizio Cimadamore In-Reply-To: <5AA82E28.7060801@oracle.com> References: <5AA82E28.7060801@oracle.com> Message-ID: <9bab1f13-8536-c78c-7797-b3c14f851118@oracle.com> Vote:? Yes Kevin L On 3/13/18 1:01 PM, Jonathan Gibbons wrote: > > I hereby nominate Maurizio Cimadamore to Code Tools Committer. > > Maurizio is one of the primary authors and now maintainer for the > jtreg IntelliJ plugin.[4] > > He has already contributed 6 changesets to Code Tools [3], as well as his > many contributions to numerous other OpenJDK projects. > > Votes are due by 1PM PDT, 27 March, 2018.. > > Only current Code Tools Committers [1] are eligible to vote > on this nomination.? Votes must be cast in the open by replying > to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > -- Jonathan Gibbons > > [1] http://openjdk.java.net/census > [2] http://openjdk.java.net/projects/#committer-vote > [3] http://hg.openjdk.java.net/code-tools/jtreg/log?rev=mcimadamore > [4] > http://hg.openjdk.java.net/code-tools/jtreg/file/b5f8dbaf9dcd/plugins/idea/README.md -- kevin.looney at oracle.com From alexey.fedorchenko at oracle.com Tue Mar 13 21:04:16 2018 From: alexey.fedorchenko at oracle.com (Alexey Fedorchenko) Date: Tue, 13 Mar 2018 14:04:16 -0700 Subject: CFV: New Code Tools Committer: Maurizio Cimadamore In-Reply-To: <5AA82E28.7060801@oracle.com> References: <5AA82E28.7060801@oracle.com> Message-ID: Vote: Yes ?Alexey > On Mar 13, 2018, at 1:01 PM, Jonathan Gibbons wrote: > > > I hereby nominate Maurizio Cimadamore to Code Tools Committer. > > Maurizio is one of the primary authors and now maintainer for the jtreg IntelliJ plugin.[4] > > He has already contributed 6 changesets to Code Tools [3], as well as his > many contributions to numerous other OpenJDK projects. > > Votes are due by 1PM PDT, 27 March, 2018.. > > Only current Code Tools Committers [1] are eligible to vote > on this nomination. Votes must be cast in the open by replying > to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > -- Jonathan Gibbons > > [1] http://openjdk.java.net/census > [2] http://openjdk.java.net/projects/#committer-vote > [3] http://hg.openjdk.java.net/code-tools/jtreg/log?rev=mcimadamore > [4] http://hg.openjdk.java.net/code-tools/jtreg/file/b5f8dbaf9dcd/plugins/idea/README.md From iris.clark at oracle.com Wed Mar 14 00:08:16 2018 From: iris.clark at oracle.com (Iris Clark) Date: Tue, 13 Mar 2018 17:08:16 -0700 (PDT) Subject: CFV: New Code Tools Committer: Maurizio Cimadamore In-Reply-To: <5AA82E28.7060801@oracle.com> References: <5AA82E28.7060801@oracle.com> Message-ID: <72deecdf-7ced-4ce3-ac39-9f0216c74824@default> Vote: yes iris From Leonid.Kuskov at Oracle.com Wed Mar 14 19:04:57 2018 From: Leonid.Kuskov at Oracle.com (Leonid Kuskov) Date: Wed, 14 Mar 2018 12:04:57 -0700 Subject: [PATCH][asmtools] Fix incorrect handling of some CPX2 constant pool entries by JDIS In-Reply-To: References: Message-ID: <6b22a621-4908-1907-c918-d3df7b19fdf8@Oracle.com> Hi Maxim, Thank you for the patch. Indeed it does fix a bug - the fix is correct but it seems to be overloaded with extra code. CX2 class contains enough information to split structures into 2 groups: referencing to CLASS_info (Fieldref, Methodref and InterfaceMethodref) and all others, hence the marker class CPX2_ClassMember is not necessary. There you can just add one method to CX2 as follows: boolean refersClassMember() { ??? return tag == CONSTANT_FIELD || tag == CONSTANT_METHOD || tag == CONSTANT_INTERFACEMETHOD; } and change only 1 line: -if (cns2.value1 == cd.this_cpx) { +if ( cns2.value1 == cd.this_cpx && cns2.refersClassMember() ) { What do you think if I use this shorter fix as your contribution? Thanks, Leonid On 3/12/18 16:52, Maxim Degtyarev wrote: > The proposed patch (see attached file jdis-cpx2-bug.diff.txt) address > incorrect handling of some constant pool entries represented with CPX2 > class by ASMTOOLS JDIS. > > JDIS incorrectly assume that field CPX2::value1 is always used to hold > index of constant pool entry of type CONSTANT_CLASS. > This assumption is valid only for entries of type CONSTANT_FIELD, > CONSTANT_METHOD and CONSTANT_INTERFACEMETHOD. > For CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and > CONSTANT_INVOKEDYNAMIC this assumption is wrong. > As a result asmtools jdis may produce malformed output for valid input. > > Example: > > public class Test { > > // Force `class Test` entry appear in the constant pool before > InvokeDynamic entries. > public Class CLASS = Test.class; > > private static Runnable[] workers = { > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test"), > () -> System.out.println("Test") > }; > > public static void main(String... args) { > > for(Runnable worker : workers) { > worker.run(); > } > > } > > } > > One of invokedynamic instructions may be rendered by jdis as > > invokedynamic InvokeDynamic run:"()Ljava/lang/Runnable;"; > > instead of > > invokedynamic InvokeDynamic > REF_invokeStatic:java/lang/invoke/LambdaMetafactory.metafactory:"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;":run:"()Ljava/lang/Runnable;" > MethodType "()V", MethodHandle > REF_invokeStatic:Test.lambda$static$1:"()V", MethodType "()V"; From mdegtyarev at gmail.com Sat Mar 17 03:48:37 2018 From: mdegtyarev at gmail.com (Maxim Degtyarev) Date: Sat, 17 Mar 2018 06:48:37 +0300 Subject: [PATCH][asmtools] Fix incorrect handling of some CPX2 constant pool entries by JDIS In-Reply-To: <6b22a621-4908-1907-c918-d3df7b19fdf8@Oracle.com> References: <6b22a621-4908-1907-c918-d3df7b19fdf8@Oracle.com> Message-ID: I think in such case we should at least get rid of `switch (cns.tag)` in `ConstantPool::ConstantStrValue()` by replacing it with `if (cns instanceof CPX2)` Updated patch attached. BTW, I saw my original message was forwarded to the asmtools-dev, but that mailing list looks dead. Which mailing list should be used for asmtools-related issues? 2018-03-14 22:04 GMT+03:00 Leonid Kuskov : > Hi Maxim, > > Thank you for the patch. Indeed it does fix a bug - the fix is correct but > it seems to be overloaded with extra code. > CX2 class contains enough information to split structures into 2 groups: > referencing to CLASS_info > (Fieldref, Methodref and InterfaceMethodref) and all others, hence the > marker class CPX2_ClassMember is not necessary. > There you can just add one method to CX2 as follows: > boolean refersClassMember() { > return tag == CONSTANT_FIELD || tag == CONSTANT_METHOD || tag == > CONSTANT_INTERFACEMETHOD; > } > and change only 1 line: > -if (cns2.value1 == cd.this_cpx) { > > +if ( cns2.value1 == cd.this_cpx && cns2.refersClassMember() ) { > > What do you think if I use this shorter fix as your contribution? > > Thanks, > Leonid > > > On 3/12/18 16:52, Maxim Degtyarev wrote: >> >> The proposed patch (see attached file jdis-cpx2-bug.diff.txt) address >> incorrect handling of some constant pool entries represented with CPX2 >> class by ASMTOOLS JDIS. >> >> JDIS incorrectly assume that field CPX2::value1 is always used to hold >> index of constant pool entry of type CONSTANT_CLASS. >> This assumption is valid only for entries of type CONSTANT_FIELD, >> CONSTANT_METHOD and CONSTANT_INTERFACEMETHOD. >> For CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and >> CONSTANT_INVOKEDYNAMIC this assumption is wrong. >> As a result asmtools jdis may produce malformed output for valid input. >> >> Example: >> >> public class Test { >> >> // Force `class Test` entry appear in the constant pool before >> InvokeDynamic entries. >> public Class CLASS = Test.class; >> >> private static Runnable[] workers = { >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test"), >> () -> System.out.println("Test") >> }; >> >> public static void main(String... args) { >> >> for(Runnable worker : workers) { >> worker.run(); >> } >> >> } >> >> } >> >> One of invokedynamic instructions may be rendered by jdis as >> >> invokedynamic InvokeDynamic run:"()Ljava/lang/Runnable;"; >> >> instead of >> >> invokedynamic InvokeDynamic >> >> REF_invokeStatic:java/lang/invoke/LambdaMetafactory.metafactory:"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;":run:"()Ljava/lang/Runnable;" >> MethodType "()V", MethodHandle >> REF_invokeStatic:Test.lambda$static$1:"()V", MethodType "()V"; > > -------------- next part -------------- # HG changeset patch # User maccimo # Date 1521257710 -10800 # Sat Mar 17 06:35:10 2018 +0300 # Node ID 9bb02bff6c94157521bd91a8a923d4d6820b1b9f # Parent 2904229ed97ec1d90a055ad86759f867cdc5296b Fix incorrect handling of constant pool entries of type CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and CONSTANT_INVOKEDYNAMIC. diff --git a/src/org/openjdk/asmtools/jdis/ConstantPool.java b/src/org/openjdk/asmtools/jdis/ConstantPool.java --- a/src/org/openjdk/asmtools/jdis/ConstantPool.java +++ b/src/org/openjdk/asmtools/jdis/ConstantPool.java @@ -598,6 +598,10 @@ break; } } + + public boolean refersClassMember() { + return tag == TAG.CONSTANT_FIELD || tag == TAG.CONSTANT_METHOD || tag == TAG.CONSTANT_INTERFACEMETHOD; + } } /* -------------------------------------------------------- */ @@ -998,17 +1002,10 @@ if (cns == null) { return "#" + cpx; } - switch (cns.tag) { - case CONSTANT_METHODHANDLE: - case CONSTANT_DYNAMIC: - case CONSTANT_INVOKEDYNAMIC: - case CONSTANT_METHOD: - case CONSTANT_INTERFACEMETHOD: - case CONSTANT_FIELD: { - CPX2 cns2 = (CPX2) cns; - if (cns2.value1 == cd.this_cpx) { - cpx = cns2.value2; - } + if (cns instanceof CPX2) { + CPX2 cns2 = (CPX2) cns; + if (cns2.value1 == cd.this_cpx && cns2.refersClassMember()) { + cpx = cns2.value2; } } return cns.tag.tagname + " " + StringValue(cpx); From alexey.fedorchenko at oracle.com Thu Mar 22 00:55:29 2018 From: alexey.fedorchenko at oracle.com (Alexey Fedorchenko) Date: Wed, 21 Mar 2018 17:55:29 -0700 Subject: Better jcov integration In-Reply-To: References: <6d88a4b5-2f2d-5a5b-9aff-9a79ea7b626e@metricspace.net> <1B54BB8C-6877-4425-897D-687926294A6D@oracle.com> <7f1a22f8-f64d-5d19-55b7-0d65caa175da@metricspace.net> Message-ID: <4A62868A-C2A4-403F-893B-21FA8312F78D@oracle.com> Hello Eric! The plugin that provides the requested Cobertura style reports was added to JCov OS repo. Please, take a look if it has all needed functionality. Thank you for the contribution. ?Alexey > On Mar 2, 2018, at 5:49 PM, Alexey Fedorchenko wrote: > > Hello, Eric! > > I will look at the patch more carefully next week, a few things that come to my mind for now: > - You have added CoberturaReportGeneratorSPI, but never used it. It looks like after changes in the DefaultReportGeneratorSPI you do not need this additional class. > - There is an assumption in the CoberturaReportGenerator that options.getSrcRootPaths() is not null, but if the user generates report by the command like: > java -jar jcov.jar repgen -format cobertura -o cobertura.xml //without specifying the ?src? value // the user will get NullPointerException. > (without sources only ?filename? attributes are changed from the full path to the names, the rest cobertura-style report looks the same). > > Could you, please, subscribe to the watchers list for CODETOOLS-7902125 to continue this discussion there. > > Thank you. > > > ?Alexey > > >> On Mar 1, 2018, at 5:43 AM, Eric McCorkle wrote: >> >> I did manage to figure out why Jenkins wasn't highlighting the code. It >> seems that the "lines" fields in method entries need to also be >> duplicated in the "class" entries. >> >> The attached diff contains the changes. >> >> On 02/28/2018 20:49, Eric McCorkle wrote: >>> I should mention that I noticed that Jenkins at least doesn't seem to >>> highlight the source in the coverage reports generated by the current >>> patch. >>> >>> I'm going to look into it a bit more. >>> >>> On 02/28/2018 15:20, Alexey Fedorchenko wrote: >>>> Hello, Eric! >>>> >>>> Thank you for the report. I have added an issue for your request [1]. >>>> We will address it, I also think that having more report formats is a >>>> good suggestion. >>>> >>>> A few thoughts about the original problem of adding JCov to CI (Jenkins): >>>> - use html publisher plugin to show JCov html report >>>> - plot build data with plot plugin to look at the coverage trend for builds >>>> ( it will require using grep and sed to get data from >>>> overview-summary.html to plot.csv ) >>>> - create JCov plugin for Jenkins. >>>> >>>> The latest item and Maven plugin opens a little bit bigger discussion >>>> for Code Tools projects: >>>> Could we have tool's plugins sources in tool?s repository? >>>> >>>> Thank you. >>>> >>>> [1] https://bugs.openjdk.java.net/browse/CODETOOLS-7902125 >>>> >>>> ?Alexey >>>> >>>>> On Feb 28, 2018, at 4:42 AM, Eric McCorkle >>>> > wrote: >>>>> >>>>> Hello everyone, >>>>> >>>>> I recently found myself needing better integration of jcov into various >>>>> build/testing tools, so I did two things. First, I modified the jcov >>>>> tool to generate a report in the Cobertura XML format, which is used by >>>>> Jenkins and other tools as an input format. While these reports are >>>>> inferior in my opinion to the HTML reports jcov generates, they do allow >>>>> integration with other tools and CI systems. Therefore, I think >>>>> providing this functionality would likely encourage more people to use >>>>> jcov over the alternatives. >>>>> >>>>> I've attached the patch for this modification here, if anyone would like >>>>> to review it. >>>>> >>>>> >>>>> I've also mostly wrangled the Maven plugin API to create a plugin for >>>>> using jcov in a Maven project (however, there is one remaining issue >>>>> with documentation generation that I need to correct before I call the >>>>> plugin "finished"). I'm not sure if that would be something that would >>>>> be added to codetools, if the group ID should be something like >>>>> "org.openjdk", or what else ought to be done about it. I will gladly >>>>> contribute the code if there's a desire to adopt it. >>>>> >>>> >> > From Leonid.Kuskov at Oracle.com Thu Mar 22 20:42:42 2018 From: Leonid.Kuskov at Oracle.com (Leonid Kuskov) Date: Thu, 22 Mar 2018 13:42:42 -0700 Subject: [PATCH][asmtools] Fix incorrect handling of some CPX2 constant pool entries by JDIS In-Reply-To: References: <6b22a621-4908-1907-c918-d3df7b19fdf8@Oracle.com> Message-ID: <72ee93f1-600d-ef33-2899-580574af986b@Oracle.com> Thank you for your contribution to asmtools.? The patch (*) has been tested and applied successfully. Best regards, Leonid *) http://hg.openjdk.java.net/code-tools/asmtools/rev/29ac1d38dde1 On 3/16/18 20:48, Maxim Degtyarev wrote: > I think in such case we should at least get rid of `switch (cns.tag)` > in `ConstantPool::ConstantStrValue()` by replacing it with `if (cns > instanceof CPX2)` > Updated patch attached. > > BTW, I saw my original message was forwarded to the asmtools-dev, but > that mailing list looks dead. Which mailing list should be used for > asmtools-related issues? Please use the code-tools-dev alias for communication. > > 2018-03-14 22:04 GMT+03:00 Leonid Kuskov: >> Hi Maxim, >> >> Thank you for the patch. Indeed it does fix a bug - the fix is correct but >> it seems to be overloaded with extra code. >> CX2 class contains enough information to split structures into 2 groups: >> referencing to CLASS_info >> (Fieldref, Methodref and InterfaceMethodref) and all others, hence the >> marker class CPX2_ClassMember is not necessary. >> There you can just add one method to CX2 as follows: >> boolean refersClassMember() { >> return tag == CONSTANT_FIELD || tag == CONSTANT_METHOD || tag == >> CONSTANT_INTERFACEMETHOD; >> } >> and change only 1 line: >> -if (cns2.value1 == cd.this_cpx) { >> >> +if ( cns2.value1 == cd.this_cpx && cns2.refersClassMember() ) { >> >> What do you think if I use this shorter fix as your contribution? >> >> Thanks, >> Leonid >> >> >> On 3/12/18 16:52, Maxim Degtyarev wrote: >>> The proposed patch (see attached file jdis-cpx2-bug.diff.txt) address >>> incorrect handling of some constant pool entries represented with CPX2 >>> class by ASMTOOLS JDIS. >>> >>> JDIS incorrectly assume that field CPX2::value1 is always used to hold >>> index of constant pool entry of type CONSTANT_CLASS. >>> This assumption is valid only for entries of type CONSTANT_FIELD, >>> CONSTANT_METHOD and CONSTANT_INTERFACEMETHOD. >>> For CONSTANT_NAMEANDTYPE, CONSTANT_METHODHANDLE, CONSTANT_DYNAMIC and >>> CONSTANT_INVOKEDYNAMIC this assumption is wrong. >>> As a result asmtools jdis may produce malformed output for valid input. >>> >>> Example: >>> >>> public class Test { >>> >>> // Force `class Test` entry appear in the constant pool before >>> InvokeDynamic entries. >>> public Class CLASS = Test.class; >>> >>> private static Runnable[] workers = { >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test"), >>> () -> System.out.println("Test") >>> }; >>> >>> public static void main(String... args) { >>> >>> for(Runnable worker : workers) { >>> worker.run(); >>> } >>> >>> } >>> >>> } >>> >>> One of invokedynamic instructions may be rendered by jdis as >>> >>> invokedynamic InvokeDynamic run:"()Ljava/lang/Runnable;"; >>> >>> instead of >>> >>> invokedynamic InvokeDynamic >>> >>> REF_invokeStatic:java/lang/invoke/LambdaMetafactory.metafactory:"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;":run:"()Ljava/lang/Runnable;" >>> MethodType "()V", MethodHandle >>> REF_invokeStatic:Test.lambda$static$1:"()V", MethodType "()V"; From eric.caspole at oracle.com Mon Mar 26 21:39:44 2018 From: eric.caspole at oracle.com (Eric Caspole) Date: Mon, 26 Mar 2018 17:39:44 -0400 Subject: RFR: CODETOOLS-7902142: jmh-jdk-microbenchmarks is missing the pom.xml Message-ID: <23ea7085-cbaa-07e9-b90c-258fe9dbba40@oracle.com> Hi everyone, Could I have reviews and a sponsor for this fix to the initial commit of the jmh-jdk-microbenchmarks? I am not a code-tools committer. Thanks, Eric JBS: https://bugs.openjdk.java.net/browse/CODETOOLS-7902142 Webrev: http://cr.openjdk.java.net/~ecaspole/CODETOOLS-7902142/01/webrev/ From jonathan.gibbons at oracle.com Tue Mar 27 23:32:32 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 27 Mar 2018 16:32:32 -0700 Subject: Result New Code Tools Committer: Maurizio Cimadamore In-Reply-To: <5AA82E28.7060801@oracle.com> References: <5AA82E28.7060801@oracle.com> Message-ID: <5ABAD490.3090305@oracle.com> Voting for Maurizio Cimadamore [1] is now closed. Yes: 4 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. Jonathan Gibbons [1] http://mail.openjdk.java.net/pipermail/code-tools-dev/2018-March/000383.html From jonathan.gibbons at oracle.com Tue Mar 27 23:55:35 2018 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 27 Mar 2018 16:55:35 -0700 Subject: RFR: CODETOOLS-7902142: jmh-jdk-microbenchmarks is missing the pom.xml In-Reply-To: <23ea7085-cbaa-07e9-b90c-258fe9dbba40@oracle.com> References: <23ea7085-cbaa-07e9-b90c-258fe9dbba40@oracle.com> Message-ID: <6551da4a-68c5-a250-e500-386ab7764a37@oracle.com> Reviewed and pushed. -- Jon On 3/26/18 2:39 PM, Eric Caspole wrote: > Hi everyone, > Could I have reviews and a sponsor for this fix to the initial commit > of the jmh-jdk-microbenchmarks? I am not a code-tools committer. > Thanks, > Eric > > JBS: > https://bugs.openjdk.java.net/browse/CODETOOLS-7902142 > > Webrev: > http://cr.openjdk.java.net/~ecaspole/CODETOOLS-7902142/01/webrev/ From eric.caspole at oracle.com Wed Mar 28 14:22:49 2018 From: eric.caspole at oracle.com (Eric Caspole) Date: Wed, 28 Mar 2018 10:22:49 -0400 Subject: RFR: CODETOOLS-7902142: jmh-jdk-microbenchmarks is missing the pom.xml In-Reply-To: <6551da4a-68c5-a250-e500-386ab7764a37@oracle.com> References: <23ea7085-cbaa-07e9-b90c-258fe9dbba40@oracle.com> <6551da4a-68c5-a250-e500-386ab7764a37@oracle.com> Message-ID: <7caf82d2-08e1-820b-190d-92782044b730@oracle.com> Thanks Jonathan! Eric On 3/27/2018 7:55 PM, Jonathan Gibbons wrote: > Reviewed and pushed. > > -- Jon > > > On 3/26/18 2:39 PM, Eric Caspole wrote: >> Hi everyone, >> Could I have reviews and a sponsor for this fix to the initial commit >> of the jmh-jdk-microbenchmarks? I am not a code-tools committer. >> Thanks, >> Eric >> >> JBS: >> https://bugs.openjdk.java.net/browse/CODETOOLS-7902142 >> >> Webrev: >> http://cr.openjdk.java.net/~ecaspole/CODETOOLS-7902142/01/webrev/ >