From alan.bateman at oracle.com Tue May 4 07:15:42 2010 From: alan.bateman at oracle.com (alan.bateman at oracle.com) Date: Tue, 04 May 2010 14:15:42 +0000 Subject: hg: jigsaw/jigsaw/jdk: 6948712: test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java fails with modules build Message-ID: <20100504141556.2394244EA4@hg.openjdk.java.net> Changeset: 84ed3c05e922 Author: alanb Date: 2010-05-04 14:44 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/84ed3c05e922 6948712: test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java fails with modules build ! src/share/classes/org/openjdk/jigsaw/Loader.java From dalibor.topic at sun.com Tue May 4 10:09:03 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Tue, 04 May 2010 17:09:03 +0000 Subject: hg: jigsaw/jigsaw/jdk: 2 new changesets Message-ID: <20100504170948.3A4DD44EF2@hg.openjdk.java.net> Changeset: 71cd6d39fd42 Author: robilad Date: 2010-05-04 18:59 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/71cd6d39fd42 Check if argument is a directory before use ! src/share/classes/org/openjdk/jigsaw/cli/Packager.java ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java Changeset: 06ff25743b7a Author: robilad Date: 2010-05-04 19:00 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/06ff25743b7a Automated merge with http://hg.openjdk.java.net/jigsaw/jigsaw/jdk From mandy.chung at oracle.com Tue May 4 13:26:51 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 04 May 2010 13:26:51 -0700 Subject: jigsaw build products Message-ID: <4BE0830B.5020501@oracle.com> In the new modules world, new module images [1] are introduced in the jdk build. This note summarizes the images you can build in the jigsaw repo: 1) Build standard (legacy) images (j2sdk-image, j2re-image) $ make all This will use the BOOTDIR as the boot image to build the standard jdk. 2) Build standard (legacy) images with SKIP_BOOT_CYCLE=false $ make all SKIP_BOOT_CYCLE=false This will first create a boot image by building the standard jdk (as in #1). j2sdk-image built in the first cycle will be used as the BOOTDIR to build the jdk in the second cycle. 3) Build module images (jre-base-image, jdk-base-image, jre-module-image, jdk-module-image) $ make modules This will use the BOOTDIR as the boot image to build the module images. 4) Build module images with SKIP_BOOT_CYCLE=false $make modules SKIP_BOOT_CYCLE=false This will first create a boot image by building modular jdk (as in #3). jdk-module-image built in the first cycle will be used as the BOOTDIR to build the module images in the second cycle. [1] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-March/000653.html From sean.mullan at oracle.com Tue May 4 14:32:33 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 04 May 2010 17:32:33 -0400 Subject: Code review request for SecurityManager changes Message-ID: <4BE09271.4050007@oracle.com> See http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ for an initial set of changes to allow modules to be run with a SecurityManager. ModuleClassLoader now extends SecureClassLoader. There is no CodeSigner support yet. That will be coming later after we integrate signed modules. Thanks, Sean From mandy.chung at oracle.com Tue May 4 15:52:25 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 04 May 2010 15:52:25 -0700 Subject: hg: jigsaw/jigsaw/jdk: 2 new changesets In-Reply-To: <20100504170948.3A4DD44EF2@hg.openjdk.java.net> References: <20100504170948.3A4DD44EF2@hg.openjdk.java.net> Message-ID: <4BE0A529.5030102@oracle.com> Hi Dalibor, The JpkgArgsTest.java test fails with my jigsaw build. Should jpkg check if it's a valid directory before writing the module file? Mandy Test: NPE if file argument does not exist: Test: NPE if file argument is not a directory: Test: NPE if file argument does not exist: --config Test: NPE if file argument is not a directory: --config java.lang.Exception at JpkgArgsTest.testIfFileArgIsNotADirectory(JpkgArgsTest.java:114) at JpkgArgsTest.test(JpkgArgsTest.java:135) at JpkgArgsTest.run(JpkgArgsTest.java:47) at JpkgArgsTest.main(JpkgArgsTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:613) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94) at java.lang.Thread.run(Thread.java:717) Caused by: java.lang.NullPointerException at java.util.Arrays$ArrayList.(Arrays.java:2835) at java.util.Arrays.asList(Arrays.java:2821) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:224) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:179) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:128) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:172) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:147) at org.openjdk.jigsaw.cli.Command.run(Command.java:97) at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:835) at org.openjdk.jigsaw.cli.Packager.run(Packager.java:628) at JpkgArgsTest.compress(JpkgArgsTest.java:190) at JpkgArgsTest.testIfFileArgIsNotADirectory(JpkgArgsTest.java:109) ... 9 more java.lang.Exception: 1/4 tests failed at JpkgArgsTest.run(JpkgArgsTest.java:57) at JpkgArgsTest.main(JpkgArgsTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:613) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94) at java.lang.Thread.run(Thread.java:717) JavaTest Message: Test threw exception: java.lang.Exception: 1/4 tests failed JavaTest Message: shutting down test dalibor.topic at sun.com wrote: > Changeset: 71cd6d39fd42 > Author: robilad > Date: 2010-05-04 18:59 +0200 > URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/71cd6d39fd42 > > Check if argument is a directory before use > > ! src/share/classes/org/openjdk/jigsaw/cli/Packager.java > ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java > > Changeset: 06ff25743b7a > Author: robilad > Date: 2010-05-04 19:00 +0200 > URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/06ff25743b7a > > Automated merge with http://hg.openjdk.java.net/jigsaw/jigsaw/jdk > > > From dalibor.topic at sun.com Wed May 5 08:57:29 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Wed, 05 May 2010 15:57:29 +0000 Subject: hg: jigsaw/jigsaw/jdk: Check if path arguments are readable Message-ID: <20100505155800.A9B314427F@hg.openjdk.java.net> Changeset: 3e1c73f3a6e0 Author: robilad Date: 2010-05-05 17:52 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3e1c73f3a6e0 Check if path arguments are readable ! src/share/classes/org/openjdk/jigsaw/cli/Packager.java ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java From dalibor.topic at sun.com Wed May 5 09:39:36 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Wed, 05 May 2010 16:39:36 +0000 Subject: hg: jigsaw/jigsaw/jdk: Check path arguments before use Message-ID: <20100505163949.C0AD44428E@hg.openjdk.java.net> Changeset: 87ea0cc3df51 Author: robilad Date: 2010-05-05 18:35 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/87ea0cc3df51 Check path arguments before use ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java From Dalibor.Topic at Sun.COM Wed May 5 09:48:28 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Wed, 05 May 2010 18:48:28 +0200 Subject: hg: jigsaw/jigsaw/jdk: 2 new changesets In-Reply-To: <4BE0A529.5030102@oracle.com> References: <20100504170948.3A4DD44EF2@hg.openjdk.java.net> <4BE0A529.5030102@oracle.com> Message-ID: <4BE1A15C.3080707@sun.com> Mandy Chung wrote: > Hi Dalibor, > > The JpkgArgsTest.java test fails with my jigsaw build. Should jpkg > check if it's a valid directory before writing the module file? Thanks, Mandy. I couldn't reproduce the issue, but I added a few more checks into the module file writing code to catch issues tested for in the JpkgArgsTest, along with a fix for dealing with empty directories in http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/87ea0cc3df51 cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From mr at sun.com Wed May 5 10:51:25 2010 From: mr at sun.com (mr at sun.com) Date: Wed, 05 May 2010 17:51:25 +0000 Subject: hg: jigsaw/jigsaw/jdk: 2 new changesets Message-ID: <20100505175150.EB918442B6@hg.openjdk.java.net> Changeset: 0ea9a49105be Author: mr Date: 2010-05-05 10:49 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0ea9a49105be Implement Loader.getPackage() ! src/share/classes/org/openjdk/jigsaw/Loader.java + test/org/openjdk/jigsaw/package.sh Changeset: 98b3a3b6785c Author: mr Date: 2010-05-05 10:50 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/98b3a3b6785c Install classes and resources into the same directory ! src/share/classes/org/openjdk/jigsaw/Files.java ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java ! src/share/classes/org/openjdk/jigsaw/SimpleLibrary.java From mandy.chung at oracle.com Wed May 5 11:04:11 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Wed, 05 May 2010 11:04:11 -0700 Subject: hg: jigsaw/jigsaw/jdk: 2 new changesets In-Reply-To: <4BE1A15C.3080707@sun.com> References: <20100504170948.3A4DD44EF2@hg.openjdk.java.net> <4BE0A529.5030102@oracle.com> <4BE1A15C.3080707@sun.com> Message-ID: <4BE1B31B.2050607@oracle.com> Dalibor Topic wrote: > Mandy Chung wrote: > >> Hi Dalibor, >> >> The JpkgArgsTest.java test fails with my jigsaw build. Should jpkg >> check if it's a valid directory before writing the module file? >> > > Thanks, Mandy. I couldn't reproduce the issue, but I added a few > more checks into the module file writing code to catch issues > tested for in the JpkgArgsTest, along with a fix for dealing > with empty directories in > http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/87ea0cc3df51 > Thanks. I was able to reproduce it on a solaris-i586 system. I'll push your changeset and see if it fixes it or not. Mandy From sean.mullan at oracle.com Fri May 7 09:27:41 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Fri, 07 May 2010 12:27:41 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE09271.4050007@oracle.com> References: <4BE09271.4050007@oracle.com> Message-ID: <4BE43F7D.9020503@oracle.com> Reminder. If you have any comments, please send them by the end of today. I plan to push this to the jigsaw repo on Monday since several subsequent security tasks are dependent on this. More SecurityManager changes will be coming later so you will have another chance to review them. Thanks, Sean On 5/4/10 5:32 PM, Sean Mullan wrote: > See > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ > for an initial set of changes to allow modules to be run with a > SecurityManager. > > ModuleClassLoader now extends SecureClassLoader. > > There is no CodeSigner support yet. That will be coming later after we > integrate signed modules. > > Thanks, > Sean > From Roger.Riggs at Oracle.com Fri May 7 10:59:26 2010 From: Roger.Riggs at Oracle.com (Roger Riggs) Date: Fri, 07 May 2010 13:59:26 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE43F7D.9020503@oracle.com> References: <4BE09271.4050007@oracle.com> <4BE43F7D.9020503@oracle.com> Message-ID: <4BE454FE.8030201@Oracle.com> Hi Sean, I suppose you are mostly looking for correctness comments but I had couple of performance observations. 1) I'm not familiar with the normal patterns used by the JDK but I would reverse the order of the tests for a SecurityManager and looking for '.' in the loadClass method. It will run faster in the case where there is no ClassLoader since the load and test of the static SecurityManager can be inlined or is always quicker than a scan of every character in the string. In jigsaw/Loader: @@ -60,10 +63,18 @@ // Primary entry point from VM // protected Class loadClass(String cn, boolean resolve) throws ClassNotFoundException { + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { int i = cn.lastIndexOf('.'); + if (i != -1) { + sm.checkPackageAccess(cn.substring(0, i)); + } + } 2) There are two doPriveleged calls and corresponding overhead when one would be sufficient. The method org.openjdk.jigsaw.Loader Class findClass(ModuleId mid, String cn) uses doPrivileged (line 182) to read the module info and then calls finishFindingClass() which also calls doPrivileged (line 212) to read the class contents. Can the number of doPriveleged calls be reduced to 1 with a bit of code rearrangment? The security checks are not inexpensive and should be reduced if possible. Roger Sean Mullan wrote: > Reminder. If you have any comments, please send them by the end of > today. I plan to push this to the jigsaw repo on Monday since several > subsequent security tasks are dependent on this. > > More SecurityManager changes will be coming later so you will have > another chance to review them. > > Thanks, > Sean > > On 5/4/10 5:32 PM, Sean Mullan wrote: >> See >> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ >> >> for an initial set of changes to allow modules to be run with a >> SecurityManager. >> >> ModuleClassLoader now extends SecureClassLoader. >> >> There is no CodeSigner support yet. That will be coming later after we >> integrate signed modules. >> >> Thanks, >> Sean >> From Roger.Riggs at Oracle.com Fri May 7 11:03:30 2010 From: Roger.Riggs at Oracle.com (Roger Riggs) Date: Fri, 07 May 2010 14:03:30 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE454FE.8030201@Oracle.com> References: <4BE09271.4050007@oracle.com> <4BE43F7D.9020503@oracle.com> <4BE454FE.8030201@Oracle.com> Message-ID: <4BE455F2.9010805@Oracle.com> Corrected... Roger Riggs wrote: > Hi Sean, > > I suppose you are mostly looking for correctness comments but I had > couple > of performance observations. > > 1) I'm not familiar with the normal patterns used by the JDK but I > would reverse the > order of the tests for a SecurityManager and looking for '.' in the > loadClass method. > > It will run faster in the case where there is *no SecurityManager > *since the load > and test of the static SecurityManager can be inlined or is always > quicker than a scan of every > character in the string. > > > In jigsaw/Loader: > > @@ -60,10 +63,18 @@ > // Primary entry point from VM > // > protected Class loadClass(String cn, boolean resolve) > throws ClassNotFoundException > { > + + SecurityManager sm = System.getSecurityManager(); > + if (sm != null) { > int i = cn.lastIndexOf('.'); > + if (i != -1) { > + sm.checkPackageAccess(cn.substring(0, i)); > + } > + } > > > 2) There are two doPriveleged calls and corresponding overhead when > one would be sufficient. > The method org.openjdk.jigsaw.Loader Class findClass(ModuleId > mid, String cn) > uses doPrivileged (line 182) to read the module info and then calls > finishFindingClass() which also calls > doPrivileged (line 212) to read the class contents. > Can the number of doPriveleged calls be reduced to 1 with a bit of > code rearrangment? > The security checks are not inexpensive and should be reduced if > possible. > Roger > > > > Sean Mullan wrote: >> Reminder. If you have any comments, please send them by the end of >> today. I plan to push this to the jigsaw repo on Monday since several >> subsequent security tasks are dependent on this. >> >> More SecurityManager changes will be coming later so you will have >> another chance to review them. >> >> Thanks, >> Sean >> >> On 5/4/10 5:32 PM, Sean Mullan wrote: >>> See >>> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ >>> >>> for an initial set of changes to allow modules to be run with a >>> SecurityManager. >>> >>> ModuleClassLoader now extends SecureClassLoader. >>> >>> There is no CodeSigner support yet. That will be coming later after we >>> integrate signed modules. >>> >>> Thanks, >>> Sean >>> > From sean.mullan at oracle.com Fri May 7 11:40:37 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Fri, 07 May 2010 14:40:37 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE455F2.9010805@Oracle.com> References: <4BE09271.4050007@oracle.com> <4BE43F7D.9020503@oracle.com> <4BE454FE.8030201@Oracle.com> <4BE455F2.9010805@Oracle.com> Message-ID: <4BE45EA5.4010506@oracle.com> On 5/7/10 2:03 PM, Roger Riggs wrote: > Corrected... > > Roger Riggs wrote: >> Hi Sean, >> >> I suppose you are mostly looking for correctness comments but I had >> couple >> of performance observations. >> >> 1) I'm not familiar with the normal patterns used by the JDK but I >> would reverse the >> order of the tests for a SecurityManager and looking for '.' in the >> loadClass method. >> >> It will run faster in the case where there is *no SecurityManager >> *since the load >> and test of the static SecurityManager can be inlined or is always >> quicker than a scan of every >> character in the string. Seems reasonable to me. That code was copied directly from AppClassLoader.loadClass. >> In jigsaw/Loader: >> >> @@ -60,10 +63,18 @@ >> // Primary entry point from VM >> // >> protected Class loadClass(String cn, boolean resolve) >> throws ClassNotFoundException >> { >> + + SecurityManager sm = System.getSecurityManager(); >> + if (sm != null) { >> int i = cn.lastIndexOf('.'); >> + if (i != -1) { >> + sm.checkPackageAccess(cn.substring(0, i)); >> + } >> + } >> >> >> 2) There are two doPriveleged calls and corresponding overhead when >> one would be sufficient. >> The method org.openjdk.jigsaw.Loader Class findClass(ModuleId mid, >> String cn) >> uses doPrivileged (line 182) to read the module info and then calls >> finishFindingClass() which also calls >> doPrivileged (line 212) to read the class contents. >> Can the number of doPriveleged calls be reduced to 1 with a bit of >> code rearrangment? >> The security checks are not inexpensive and should be reduced if >> possible. I might be able to remove the doPriv from finishFindingClass and carefully widen the scope of the doPriv in findClass. I'll take a closer look. Thanks, Sean From vincent.x.ryan at oracle.com Mon May 10 09:47:53 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Mon, 10 May 2010 17:47:53 +0100 Subject: jpkg enhancements to create signed modules Message-ID: <4BE838B9.6020902@oracle.com> Hello, Please review these code changes to support the creation of signed modules: http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ It adds the following new options to the jpkg tool: -S, --signer : module signer's identifier -k, --keystore : module signer's keystore location -t, --storetype : module signer's keystore type --nosign : do not sign the module --nopassword : do not prompt for a keystore password Appropriate default values are supported and keystore passwords may be supplied to jpkg by redirecting standard input. This is just one of a number of changes to support signed modules throughout jigsaw. Please send me your comments as I'm hoping to address any issues and integrate these changes by the end of this week. Thanks. From mandy.chung at oracle.com Mon May 10 10:40:15 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Mon, 10 May 2010 10:40:15 -0700 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE09271.4050007@oracle.com> References: <4BE09271.4050007@oracle.com> Message-ID: <4BE844FF.4000908@oracle.com> Hi Sean, The fix looks okay to me. org/openjdk/jigsaw/Launcher.java line 94: nit: probably better to replace the test "".equals(s) with s.isEmpty(). test/org/openjdk/jigsaw/security.sh Can you add further comment in the @summary tag to describe what the test does? Are you planning to look at the jigsaw APIs and add the proper @throws SecurityException (and the required security permission) in the spec at some point in time? Thanks Mandy Sean Mullan wrote: > See > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ > for an initial set of changes to allow modules to be run with a > SecurityManager. > > ModuleClassLoader now extends SecureClassLoader. > > There is no CodeSigner support yet. That will be coming later after we > integrate signed modules. > > Thanks, > Sean > From sean.mullan at oracle.com Mon May 10 11:40:03 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 10 May 2010 14:40:03 -0400 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE838B9.6020902@oracle.com> References: <4BE838B9.6020902@oracle.com> Message-ID: <4BE85303.8090707@oracle.com> Vinnie discovered a small issue with the signed module file format [1] while implementing. The module header in the module file format [2] includes a field named csize which holds the size of the module file. The value of this field is not known until the contents of the module file has been written. The csize also includes the size of the signature section, but the signature cannot be written until all of the hashes have been generated. Two of those hashes (the module header hash and the whole file hash) are over content containing the csize field. Thus there is a circular dependency issue. The current implementation works around this by first writing a dummy signature and then later replacing it with the real signature once the overall size of the signature is known. However, this is not an optimal solution. The simplest fix would be to not include csize in the hashes. Another possibility is to not sign the module header, as most of the information contained in the header is part of initializing the processing of the file itself, and any modifications would likely lead to an error before the signature is validated anyway. Comments? [1]: http://cr.openjdk.java.net/~mullan/jigsaw/signed-module-file-format [2]: http://cr.openjdk.java.net/~mr/jigsaw/notes/module-file-format/ On 5/10/10 12:47 PM, Vincent Ryan wrote: > Hello, > > Please review these code changes to support the creation of signed modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > > It adds the following new options to the jpkg tool: > > -S, --signer : module signer's identifier > -k, --keystore : module signer's keystore location > -t, --storetype : module signer's keystore type > --nosign : do not sign the module > --nopassword : do not prompt for a keystore password > > Appropriate default values are supported and keystore passwords may be > supplied to jpkg by redirecting standard input. > > > This is just one of a number of changes to support signed modules throughout > jigsaw. > > Please send me your comments as I'm hoping to address any issues and integrate > these changes by the end of this week. > > Thanks. From sean.mullan at oracle.com Mon May 10 12:46:30 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 10 May 2010 15:46:30 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE844FF.4000908@oracle.com> References: <4BE09271.4050007@oracle.com> <4BE844FF.4000908@oracle.com> Message-ID: <4BE86296.7020609@oracle.com> On 5/10/10 1:40 PM, Mandy Chung wrote: > Hi Sean, > > The fix looks okay to me. > > org/openjdk/jigsaw/Launcher.java > line 94: nit: probably better to replace the test "".equals(s) with > s.isEmpty(). Fixed. > > test/org/openjdk/jigsaw/security.sh > Can you add further comment in the @summary tag to describe what the > test does? Fixed. New webrev: http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.01 This also includes a fix for the first of Roger's comments. I need more time to think about the second comment; will look at it later. > > Are you planning to look at the jigsaw APIs and add the proper @throws > SecurityException (and the required security permission) in the spec at > some point in time? Yes, I will look at that later this week. --Sean > > Thanks > Mandy > > Sean Mullan wrote: >> See >> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ >> for an initial set of changes to allow modules to be run with a >> SecurityManager. >> >> ModuleClassLoader now extends SecureClassLoader. >> >> There is no CodeSigner support yet. That will be coming later after we >> integrate signed modules. >> >> Thanks, >> Sean >> > From mandy.chung at oracle.com Mon May 10 13:08:04 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Mon, 10 May 2010 13:08:04 -0700 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE86296.7020609@oracle.com> References: <4BE09271.4050007@oracle.com> <4BE844FF.4000908@oracle.com> <4BE86296.7020609@oracle.com> Message-ID: <4BE867A4.7030903@oracle.com> Sean Mullan wrote: > New webrev: > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.01 > > Thanks. Looks good. Mandy From karen.kinnear at oracle.com Mon May 10 13:45:00 2010 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Mon, 10 May 2010 16:45:00 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE09271.4050007@oracle.com> References: <4BE09271.4050007@oracle.com> Message-ID: <4BE8704C.2030009@oracle.com> Sean, Thanks for doing these changes. 1) Not something you have to change, but I've been wondering if it would make sense to have some common small utilities shared by the two launchers so we don't have to maintain two copies of some of the sources. 2) Are you adding support for ProtectionDomains later? The code itself looks good (webrev.01) thanks, Karen Sean Mullan wrote: > See > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.00/ > for an initial set of changes to allow modules to be run with a > SecurityManager. > > ModuleClassLoader now extends SecureClassLoader. > > There is no CodeSigner support yet. That will be coming later after we > integrate signed modules. > > Thanks, > Sean > From mandy.chung at oracle.com Mon May 10 19:48:56 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:48:56 +0000 Subject: hg: jigsaw/jigsaw: Added tag jigsaw-b04 for changeset 696214fdbb70 Message-ID: <20100511024856.901D244226@hg.openjdk.java.net> Changeset: 5558ecc7e35a Author: mchung Date: 2010-05-10 19:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/5558ecc7e35a Added tag jigsaw-b04 for changeset 696214fdbb70 ! .hgtags From mandy.chung at oracle.com Mon May 10 19:48:58 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:48:58 +0000 Subject: hg: jigsaw/jigsaw/corba: Added tag jigsaw-b04 for changeset 8a1a380a9a43 Message-ID: <20100511024859.A31F144227@hg.openjdk.java.net> Changeset: df9d50243e77 Author: mchung Date: 2010-05-10 19:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/df9d50243e77 Added tag jigsaw-b04 for changeset 8a1a380a9a43 ! .hgtags From mandy.chung at oracle.com Mon May 10 19:49:02 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:49:02 +0000 Subject: hg: jigsaw/jigsaw/hotspot: Added tag jigsaw-b04 for changeset c4854f8d4afe Message-ID: <20100511024905.CE32B44228@hg.openjdk.java.net> Changeset: 915ac78cb3a1 Author: mchung Date: 2010-05-10 19:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/915ac78cb3a1 Added tag jigsaw-b04 for changeset c4854f8d4afe ! .hgtags From mandy.chung at oracle.com Mon May 10 19:49:08 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:49:08 +0000 Subject: hg: jigsaw/jigsaw/jaxp: Added tag jigsaw-b04 for changeset d5dbf8dc7968 Message-ID: <20100511024908.1B27744229@hg.openjdk.java.net> Changeset: bc84b8c8990d Author: mchung Date: 2010-05-10 19:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/bc84b8c8990d Added tag jigsaw-b04 for changeset d5dbf8dc7968 ! .hgtags From mandy.chung at oracle.com Mon May 10 19:49:10 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:49:10 +0000 Subject: hg: jigsaw/jigsaw/jaxws: Added tag jigsaw-b04 for changeset fe9f79764b88 Message-ID: <20100511024910.458874422A@hg.openjdk.java.net> Changeset: 56ec3b23b553 Author: mchung Date: 2010-05-10 19:48 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/56ec3b23b553 Added tag jigsaw-b04 for changeset fe9f79764b88 ! .hgtags From mandy.chung at oracle.com Mon May 10 19:49:13 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:49:13 +0000 Subject: hg: jigsaw/jigsaw/jdk: Added tag jigsaw-b04 for changeset 98b3a3b6785c Message-ID: <20100511024936.47D5F4422B@hg.openjdk.java.net> Changeset: 326c24fd625e Author: mchung Date: 2010-05-10 19:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/326c24fd625e Added tag jigsaw-b04 for changeset 98b3a3b6785c ! .hgtags From mandy.chung at oracle.com Mon May 10 19:49:38 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 11 May 2010 02:49:38 +0000 Subject: hg: jigsaw/jigsaw/langtools: Added tag jigsaw-b04 for changeset 1d3e1ab9bfcc Message-ID: <20100511024942.496E94422C@hg.openjdk.java.net> Changeset: 9fc31b14d7d5 Author: mchung Date: 2010-05-10 19:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/9fc31b14d7d5 Added tag jigsaw-b04 for changeset 1d3e1ab9bfcc ! .hgtags From Weijun.Wang at Sun.COM Tue May 11 04:30:03 2010 From: Weijun.Wang at Sun.COM (Wang Weijun) Date: Tue, 11 May 2010 19:30:03 +0800 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE85303.8090707@oracle.com> Message-ID: <4895507127.958073403@sun.com> What's critical inside the module header? The version numbers might be used for conpatibility check. Can usize be altered to exhaust precious memory? Maybe the header can be divided into 2 parts? Thanks Max ------- Original message ------- > From: Sean Mullan > To: jigsaw-dev at openjdk.java.net > Sent: 11.5.'10, 2:39 > > Vinnie discovered a small issue with the signed module file format [1] > while implementing. > > The module header in the module file format [2] includes a field named > csize which holds the size of the module file. The value of this field is > not known until the contents of the module file has been written. The > csize also includes the size of the signature section, but the signature > cannot be written until all of the hashes have been generated. Two of > those hashes (the module header hash and the whole file hash) are over > content containing the csize field. Thus there is a circular dependency > issue. > > The current implementation works around this by first writing a dummy > signature and then later replacing it with the real signature once the > overall size of the signature is known. > > However, this is not an optimal solution. > > The simplest fix would be to not include csize in the hashes. Another > possibility is to not sign the module header, as most of the information > contained in the header is part of initializing the processing of the file > itself, and any modifications would likely lead to an error before the > signature is validated anyway. > > Comments? > > [1]: http://cr.openjdk.java.net/~mullan/jigsaw/signed-module-file-format > [2]: http://cr.openjdk.java.net/~mr/jigsaw/notes/module-file-format/ > > > On 5/10/10 12:47 PM, Vincent Ryan wrote: >> Hello, >> >> Please review these code changes to support the creation of signed >> modules: >> >> http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ >> >> It adds the following new options to the jpkg tool: >> >> -S, --signer : module signer's identifier >> -k, --keystore : module signer's keystore location >> -t, --storetype : module signer's keystore type >> --nosign : do not sign the module >> --nopassword : do not prompt for a keystore password >> >> Appropriate default values are supported and keystore passwords may be >> supplied to jpkg by redirecting standard input. >> >> >> This is just one of a number of changes to support signed modules >> throughout >> jigsaw. >> >> Please send me your comments as I'm hoping to address any issues and >> integrate >> these changes by the end of this week. >> >> Thanks. From Weijun.Wang at Sun.COM Tue May 11 05:15:02 2010 From: Weijun.Wang at Sun.COM (Wang Weijun) Date: Tue, 11 May 2010 20:15:02 +0800 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE838B9.6020902@oracle.com> Message-ID: <2430311436.958076102@sun.com> Simple ones first. ContentInfo: HexDumpEncoder.encodeBuffer(*) is preferred. Packager: 1. --nosign and --signer etc can be combinated quite freely. Is there an illegal combination? 2. We used to specify NONE for PKCS #11 keystore name. Although it's not recommended now, is it allowed? 3. What if user specifies a non-JKS type but hasn't provided keystore name? 4. The char[] returned by Password.readPassword() is not zeroed. 5. Do we have SHA256withDSA now? 6. We've added CRL into signed jars recently. Any plan for it in signed modules? You might embed it in PKCS #7 block or create a supplementary module section (Is this possible?) ModuleFileFormat: hashtype is hardcoded to SHA256? Thanks Max ------- Original message ------- > From: Vincent Ryan > To: jigsaw-dev at openjdk.java.net > Sent: 11.5.'10, 0:46 > > Hello, > > Please review these code changes to support the creation of signed > modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > > It adds the following new options to the jpkg tool: > > -S, --signer : module signer's identifier > -k, --keystore : module signer's keystore location > -t, --storetype : module signer's keystore type > --nosign : do not sign the module > --nopassword : do not prompt for a keystore password > > Appropriate default values are supported and keystore passwords may be > supplied to jpkg by redirecting standard input. > > > This is just one of a number of changes to support signed modules > throughout > jigsaw. > > Please send me your comments as I'm hoping to address any issues and > integrate > these changes by the end of this week. > > Thanks. From vincent.x.ryan at oracle.com Tue May 11 07:09:16 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Tue, 11 May 2010 15:09:16 +0100 Subject: jpkg enhancements to create signed modules In-Reply-To: <2430311436.958076102@sun.com> References: <2430311436.958076102@sun.com> Message-ID: <4BE9650C.1030004@oracle.com> Thanks for your comments Max. On 11/05/2010 13:15, Wang Weijun wrote: > Simple ones first. > > ContentInfo: > HexDumpEncoder.encodeBuffer(*) is preferred. Done. > > Packager: > 1. --nosign and --signer etc can be combinated quite freely. Is there an > illegal combination? Now it throws an exception when --nosign is supplied with any of --signer --keystore --storetype. > 2. We used to specify NONE for PKCS #11 keystore name. Although it's not > recommended now, is it allowed? Now supported. > 3. What if user specifies a non-JKS type but hasn't provided keystore name? That's allowed, for example, PKCS11 and Windows-MY > 4. The char[] returned by Password.readPassword() is not zeroed. Done. > 5. Do we have SHA256withDSA now? That's a problem. Will investigate. > 6. We've added CRL into signed jars recently. Any plan for it in signed > modules? You might embed it in PKCS #7 block or create a supplementary > module section (Is this possible?) No plans to support this yet. > > ModuleFileFormat: > hashtype is hardcoded to SHA256? Yes. > > Thanks > Max > > > ------- Original message ------- >> From: Vincent Ryan >> To: jigsaw-dev at openjdk.java.net >> Sent: 11.5.'10, 0:46 >> >> Hello, >> >> Please review these code changes to support the creation of signed >> modules: >> >> http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ >> >> It adds the following new options to the jpkg tool: >> >> -S, --signer : module signer's identifier >> -k, --keystore : module signer's keystore location >> -t, --storetype : module signer's keystore type >> --nosign : do not sign the module >> --nopassword : do not prompt for a keystore password >> >> Appropriate default values are supported and keystore passwords may be >> supplied to jpkg by redirecting standard input. >> >> >> This is just one of a number of changes to support signed modules >> throughout >> jigsaw. >> >> Please send me your comments as I'm hoping to address any issues and >> integrate >> these changes by the end of this week. >> >> Thanks. > From Weijun.Wang at Sun.COM Tue May 11 07:56:37 2010 From: Weijun.Wang at Sun.COM (Wang Weijun) Date: Tue, 11 May 2010 22:56:37 +0800 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE9650C.1030004@oracle.com> Message-ID: <5212169782.958085797@sun.com> >> 3. What if user specifies a non-JKS type but hasn't provided keystore >> name? > > That's allowed, for example, PKCS11 and Windows-MY > > What about pkcs12 and jceks? From sean.mullan at oracle.com Tue May 11 08:48:20 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 11 May 2010 11:48:20 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <4BE8704C.2030009@oracle.com> References: <4BE09271.4050007@oracle.com> <4BE8704C.2030009@oracle.com> Message-ID: <4BE97C44.7080004@oracle.com> On 5/10/10 4:45 PM, Karen Kinnear wrote: > Sean, > > Thanks for doing these changes. > > 1) Not something you have to change, but I've been wondering if it would > make sense > to have some common small utilities shared by the two launchers so we > don't have to > maintain two copies of some of the sources. Hmm, not sure. I'll let Mark or Mandy respond on that one. For the signed module support, we are reusing the existing PKCS7 code that we use for signed jars. > 2) Are you adding support for ProtectionDomains later? There is initial basic support for ProtectionDomains in this changeset. Each PD is only distinguished by the ClassLoader of the module. Also, all PDs right now have a null CodeSource URL. This is an open issue that needs to be discussed - since we want to be able to sandbox unsigned module apps such that they can only make network connections back to the originating host (or to other hosts if the cross domain policy permits). Support for CodeSigners will be coming later when signed module support is integrated. --Sean From vincent.x.ryan at oracle.com Tue May 11 09:17:11 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Tue, 11 May 2010 17:17:11 +0100 Subject: jpkg enhancements to create signed modules In-Reply-To: <5212169782.958085797@sun.com> References: <5212169782.958085797@sun.com> Message-ID: <4BE98307.6010206@oracle.com> On 11/05/2010 15:56, Wang Weijun wrote: >>> 3. What if user specifies a non-JKS type but hasn't provided keystore >>> name? >> >> That's allowed, for example, PKCS11 and Windows-MY >> >> > > What about pkcs12 and jceks? An exception will be thrown. For example, % jpkg --storetype PKCS12 --signer mykey jmod mymodule Enter password for PKCS12 keystore: java.security.KeyStoreException: Signer key not found in PKCS12 keystore From mr at sun..com Tue May 11 09:52:38 2010 From: mr at sun..com (Mark Reinhold) Date: Tue, 11 May 2010 09:52:38 -0700 Subject: Code review request for SecurityManager changes In-Reply-To: sean.mullan@oracle.com; Tue, 11 May 2010 11:48:20 EDT; <4BE97C44.7080004@oracle.com> Message-ID: <20100511165238.EE6A4431@eggemoggin.niobe.net> > Date: Tue, 11 May 2010 11:48:20 -0400 > From: sean.mullan at oracle.com > On 5/10/10 4:45 PM, Karen Kinnear wrote: >> >> 1) Not something you have to change, but I've been wondering if it >> would make sense to have some common small utilities shared by the two >> launchers so we don't have to maintain two copies of some of the >> sources. > > Hmm, not sure. I'll let Mark or Mandy respond on that one. Most of the code in sun.misc.Launcher deals with setting up the legacy class-loader hierarchy, which is irrelevant to launching a modular application. If there's an opportunity for sharing then it's with the legacy-mode support that Mandy's working on, not with the Jigsaw launcher. - Mark From mr at sun.com Tue May 11 10:14:31 2010 From: mr at sun.com (Mark Reinhold) Date: Tue, 11 May 2010 10:14:31 -0700 Subject: Code review request for SecurityManager changes In-Reply-To: sean.mullan@oracle.com; Mon, 10 May 2010 15:46:30 EDT; <4BE86296.7020609@oracle.com> Message-ID: <20100511171431.E1C2F431@eggemoggin.niobe.net> > Date: Mon, 10 May 2010 15:46:30 -0400 > From: sean.mullan at oracle.com > New webrev: > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager/webrev.01 Thanks -- these changes look good. Just a few minor stylistic comments, so as to retain the style of the existing code in ModuleClassLoader.java (line numbers in the new version in [brackets]): [35] "extends SecureClassLoader" should be on its own line, as before [49] Mark "todo" items with "##", not "ToDo:" [50] Split long method invocations across multiple lines by splitting the argument list rather than by separating the method name from the argument list. This should read: Class c = super.defineClass(name, b, off, len, new CodeSource(null), new (CodeSigner[])null); - Mark From sean.mullan at oracle.com Tue May 11 11:46:04 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 11 May 2010 14:46:04 -0400 Subject: Code review request for SecurityManager changes In-Reply-To: <20100511171431.E1C2F431@eggemoggin.niobe.net> References: <20100511171431.E1C2F431@eggemoggin.niobe.net> Message-ID: <4BE9A5EC.4000304@oracle.com> On 5/11/10 1:14 PM, Mark Reinhold wrote: > [50] Split long method invocations across multiple lines by splitting > the argument list rather than by separating the method name from the > argument list. This should read: > > Class c = super.defineClass(name, b, off, len, > new CodeSource(null), > new (CodeSigner[])null); Actually the CodeSource constructor has 2 arguments above. So which is preferable: Class c = super.defineClass(name, b, off, len, new CodeSource(null, (CodeSigner[])null); or: Class c = super.defineClass(name, b, off, len, new CodeSource(null, (CodeSigner[])null); --Sean From mr at sun.com Tue May 11 11:53:32 2010 From: mr at sun.com (Mark Reinhold) Date: Tue, 11 May 2010 11:53:32 -0700 Subject: jpkg enhancements to create signed modules In-Reply-To: vincent.x.ryan@oracle.com; Mon, 10 May 2010 17:47:53 BST; <4BE838B9.6020902@oracle.com> Message-ID: <20100511185332.3196B431@eggemoggin.niobe.net> > Date: Mon, 10 May 2010 17:47:53 +0100 > From: vincent.x.ryan at oracle.com > Please review these code changes to support the creation of signed modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > > It adds the following new options to the jpkg tool: > > -S, --signer : module signer's identifier > -k, --keystore : module signer's keystore location > -t, --storetype : module signer's keystore type > --nosign : do not sign the module > --nopassword : do not prompt for a keystore password > > Appropriate default values are supported and keystore passwords may be > supplied to jpkg by redirecting standard input. Thanks; this is a good start. Some comments: FileConstants.java [156] We might support XML_DSIG or PGP someday, but we have no immediate plans for those, so please remove these elements from the SignatureType enum. ModuleFileFormat.java Please use "//" rather than "/* .. */" for all non-javadoc comments. [486, and elsewhere] Indent non-initial lines of a long argument list, and put the following brace on its own line: public void setSignatureMechanism(ModuleFileSigner mechanism, ModuleFileSigner.Parameters parameters) { [545] Having to shift the whole file here seems unfortunate. Is there no way to predict the size of the signature in advance? Does it depend upon anything other than the number of section hashes? Packager.java Why is the --nosign option needed? Not signing a module should be the default; signing should be done only when requested. [137, 140] Variables named "nofoo" are confusing, and lead to clunky double-negative constructions such as "!nofoo". Please change these variables to their positive forms. [200] The new signing code makes this method way too long to be readable. Please refactor it into one or more subsidiary methods. Finally, you'll need a unit test for all this new functionality. - Mark From mr at sun.com Tue May 11 11:56:37 2010 From: mr at sun.com (Mark Reinhold) Date: Tue, 11 May 2010 11:56:37 -0700 Subject: Code review request for SecurityManager changes In-Reply-To: sean.mullan@oracle.com; Tue, 11 May 2010 14:46:04 EDT; <4BE9A5EC.4000304@oracle.com> Message-ID: <20100511185637.694FF431@eggemoggin.niobe.net> > Date: Tue, 11 May 2010 14:46:04 -0400 > From: sean.mullan at oracle.com > On 5/11/10 1:14 PM, Mark Reinhold wrote: >> [50] Split long method invocations across multiple lines by splitting >> the argument list rather than by separating the method name from the >> argument list. This should read: >> >> Class c = super.defineClass(name, b, off, len, >> new CodeSource(null), >> new (CodeSigner[])null); > > Actually the CodeSource constructor has 2 arguments above. So which is preferable: > > Class c = super.defineClass(name, b, off, len, > new CodeSource(null, > (CodeSigner[])null); > > or: > > Class c = super.defineClass(name, b, off, len, > new CodeSource(null, > (CodeSigner[])null); The latter is much more readable. - Mark From mr at sun.com Tue May 11 12:18:30 2010 From: mr at sun.com (Mark Reinhold) Date: Tue, 11 May 2010 12:18:30 -0700 Subject: jpkg enhancements to create signed modules In-Reply-To: sean.mullan@oracle.com; Mon, 10 May 2010 14:40:03 EDT; <4BE85303.8090707@oracle.com> Message-ID: <20100511191830.5DE4B431@eggemoggin.niobe.net> > Date: Mon, 10 May 2010 14:40:03 -0400 > From: sean.mullan at oracle.com > Vinnie discovered a small issue with the signed module file format [1] while > implementing. > > The module header in the module file format [2] includes a field named csize > which holds the size of the module file. The value of this field is not known > until the contents of the module file has been written. The csize also includes > the size of the signature section, but the signature cannot be written until > all of the hashes have been generated. Two of those hashes (the module header > hash and the whole file hash) are over content containing the csize field. Thus > there is a circular dependency issue. > > The current implementation works around this by first writing a dummy signature > and then later replacing it with the real signature once the overall size of > the signature is known. Won't it still be necessary to write a dummy signature even if the csize field is omitted? > However, this is not an optimal solution. > > The simplest fix would be to not include csize in the hashes. Another > possibility is to not sign the module header, as most of the information > contained in the header is part of initializing the processing of the file > itself, and any modifications would likely lead to an error before the > signature is validated anyway. Yet another solution is simply to remove the csize field from module-file headers. It's read by the module-repository code when publishing a module, but the compressed size of a module can just as easily be determined by asking the filesystem. Unless someone sees a need for this field, let's remove it. - Mark From mandy.chung at oracle.com Tue May 11 12:28:57 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 11 May 2010 12:28:57 -0700 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE838B9.6020902@oracle.com> References: <4BE838B9.6020902@oracle.com> Message-ID: <4BE9AFF9.60905@oracle.com> On 05/10/10 09:47, Vincent Ryan wrote: > Hello, > > Please review these code changes to support the creation of signed modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > > It adds the following new options to the jpkg tool: > > -S, --signer : module signer's identifier > -k, --keystore : module signer's keystore location > -t, --storetype : module signer's keystore type > --nosign : do not sign the module > --nopassword : do not prompt for a keystore password > > Appropriate default values are supported and keystore passwords may be > supplied to jpkg by redirecting standard input. > > > This is just one of a number of changes to support signed modules throughout > jigsaw. > > Please send me your comments as I'm hoping to address any issues and integrate > these changes by the end of this week Hi Vinnie, Just a couple of questions for now and will do a detailed review in your new version. Packager.java line 224, 267: - Does this message ("Enter password") need to be localized? If so, it should get from a resource bundle. The jigsaw tools have yet to support L10N. Perhaps we can start with this message. Does this change introduce new dependency to the jdk.boot module? You can check the module-info.java from the build directory: build/linux-i586/tmp/modules/src/jdk.boot/module-info.java jdk.boot is the minimal module that doesn't depend on any other module. jpkg is preinstalled in the jdk-base-module in the modules build. You can run build/linux-i586/jdk-base-module/bin/jpkg to verify if it causes unexpected dependencies (not found by the static analysis done by the class analyzer). Mandy From sean.mullan at oracle.com Tue May 11 12:48:32 2010 From: sean.mullan at oracle.com (sean.mullan at oracle.com) Date: Tue, 11 May 2010 19:48:32 +0000 Subject: hg: jigsaw/jigsaw/jdk: 5 new changesets Message-ID: <20100511194950.A88114436A@hg.openjdk.java.net> Changeset: 033ed7554f44 Author: mullan Date: 2010-05-07 09:56 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/033ed7554f44 Add initial support for running modules with SecurityManager (no CodeSigner support yet). ! src/share/classes/java/lang/module/ModuleClassLoader.java ! src/share/classes/org/openjdk/jigsaw/Launcher.java ! src/share/classes/org/openjdk/jigsaw/Loader.java ! src/share/classes/org/openjdk/jigsaw/LoaderPool.java + test/org/openjdk/jigsaw/security.sh Changeset: 1bc3cb61f9ab Author: mullan Date: 2010-05-10 09:26 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1bc3cb61f9ab Optimize package access check in Loader.loadClass. ! src/share/classes/org/openjdk/jigsaw/Loader.java Changeset: 8c9fbed2dd90 Author: mullan Date: 2010-05-10 10:15 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/8c9fbed2dd90 Merge. ! src/share/classes/org/openjdk/jigsaw/Loader.java Changeset: 1a5d554f99dd Author: mullan Date: 2010-05-11 15:46 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1a5d554f99dd Minor stylistic changes and extra comments. ! src/share/classes/java/lang/module/ModuleClassLoader.java ! src/share/classes/org/openjdk/jigsaw/Launcher.java ! test/org/openjdk/jigsaw/security.sh Changeset: b7e00bb24b61 Author: mullan Date: 2010-05-11 15:47 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b7e00bb24b61 Branch merge. From mandy.chung at oracle.com Tue May 11 13:30:51 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 11 May 2010 13:30:51 -0700 Subject: Please review fix to StackOverflowError in jigsaw tracing Message-ID: <4BE9BE7B.4030809@oracle.com> I have a fix for: 6951456: jigsaw JIGSAW_TRACE=3 stack overflow due to recursion Trace may be called while the classes for tracing (e.g. java.util.Formatter) are being loaded. One solution is to cache the traces to avoid recursion until the very first call completes. Webrev at: http://cr.openjdk.java.net/~mchung/6951456/webrev.00/ Thanks Mandy From Dalibor.Topic at Sun.COM Tue May 11 13:59:54 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Tue, 11 May 2010 22:59:54 +0200 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE838B9.6020902@oracle.com> References: <4BE838B9.6020902@oracle.com> Message-ID: <4BE9C54A.90500@sun.com> Vincent Ryan wrote: > Hello, > > Please review these code changes to support the creation of signed modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > Nice! Thank you for the cleanups, too. I've only got one small nit, in ModuleFileFormat.java: SECTION_HEADER_LENGTH - doesn't seem to be used anywhere. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From Weijun.Wang at Sun.COM Tue May 11 16:22:21 2010 From: Weijun.Wang at Sun.COM (Wang Weijun) Date: Wed, 12 May 2010 07:22:21 +0800 Subject: jpkg enhancements to create signed modules In-Reply-To: <20100511185332.3196B431@eggemoggin.niobe.net> Message-ID: <8423828957.958116141@sun.com> > > Why is the --nosign option needed? Not signing a module should be the > default; signing should be done only when requested. > I thought signing with the single privateKeyEntry using JKS type ~/.keystore is the default when no signature-related option is provided. If default action is no-sign, it looks a --sign option is needed, since all other options are optional. Max From vincent.x.ryan at oracle.com Wed May 12 03:19:48 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Wed, 12 May 2010 11:19:48 +0100 Subject: jpkg enhancements to create signed modules In-Reply-To: <20100511185332.3196B431@eggemoggin.niobe.net> References: <20100511185332.3196B431@eggemoggin.niobe.net> Message-ID: <4BEA80C4.5030807@oracle.com> Thanks for your review. On 05/11/10 19:53, Mark Reinhold wrote: >> Date: Mon, 10 May 2010 17:47:53 +0100 >> From: vincent.x.ryan at oracle.com > >> Please review these code changes to support the creation of signed modules: >> >> http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ >> >> It adds the following new options to the jpkg tool: >> >> -S, --signer : module signer's identifier >> -k, --keystore : module signer's keystore location >> -t, --storetype : module signer's keystore type >> --nosign : do not sign the module >> --nopassword : do not prompt for a keystore password >> >> Appropriate default values are supported and keystore passwords may be >> supplied to jpkg by redirecting standard input. > > Thanks; this is a good start. Some comments: > > FileConstants.java > > [156] We might support XML_DSIG or PGP someday, but we have no > immediate plans for those, so please remove these elements from the > SignatureType enum. OK. > > ModuleFileFormat.java > > Please use "//" rather than "/* .. */" for all non-javadoc comments. > > [486, and elsewhere] Indent non-initial lines of a long argument list, > and put the following brace on its own line: > > public void setSignatureMechanism(ModuleFileSigner mechanism, > ModuleFileSigner.Parameters parameters) > { > OK. > [545] Having to shift the whole file here seems unfortunate. Is there > no way to predict the size of the signature in advance? Does it depend > upon anything other than the number of section hashes? The default format for the module signature is PKCS #7 SignedData type [1], which is an ASN.1 BER encoding of nested tag-length-value data structures. Unfortunately it is difficult to predict its exact size in advance without performing the actual encoding. The design choices are: 1) write the signature twice - first with a dummy signature to determine the exact size and then later with the true signature. No shift. -or- 2) write the signature once, at the end of the process. Shift required. The current implementation involves 1) _plus_ the shift. I can certainly improve on that. [1] http://tools.ietf.org/html/rfc2315#section-9.1 > > Packager.java > > Why is the --nosign option needed? Not signing a module should be the > default; signing should be done only when requested. > I'll reverse that. > [137, 140] Variables named "nofoo" are confusing, and lead to clunky > double-negative constructions such as "!nofoo". Please change these > variables to their positive forms. OK. > > [200] The new signing code makes this method way too long to be > readable. Please refactor it into one or more subsidiary methods. OK. > > Finally, you'll need a unit test for all this new functionality. > I've extended an existing unit test. I'll include that in my next webrev. > - Mark From sean.mullan at oracle.com Wed May 12 06:53:07 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 12 May 2010 09:53:07 -0400 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE9650C.1030004@oracle.com> References: <2430311436.958076102@sun.com> <4BE9650C.1030004@oracle.com> Message-ID: <4BEAB2C3.3070901@oracle.com> On 5/11/10 10:09 AM, Vincent Ryan wrote: >> 5. Do we have SHA256withDSA now? > > That's a problem. Will investigate. I don't think this is necessarily a problem. We haven't added support for this algorithm in JDK 7 yet [1] but someone else could add support for it. As long as jpkg returns a meaningful error indicating the algorithm is not available, I think it is ok. Thanks, Sean [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6560751 From sean.mullan at oracle.com Wed May 12 10:26:00 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 12 May 2010 13:26:00 -0400 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BEA80C4.5030807@oracle.com> References: <20100511185332.3196B431@eggemoggin.niobe.net> <4BEA80C4.5030807@oracle.com> Message-ID: <4BEAE4A8.6000205@oracle.com> On 5/12/10 6:19 AM, Vincent Ryan wrote: >> [545] Having to shift the whole file here seems unfortunate. Is there >> no way to predict the size of the signature in advance? Does it depend >> upon anything other than the number of section hashes? > > The default format for the module signature is PKCS #7 SignedData type [1], > which is an ASN.1 BER encoding of nested tag-length-value data structures. > Unfortunately it is difficult to predict its exact size in advance without > performing the actual encoding. > > The design choices are: > > 1) write the signature twice - first with a dummy signature to determine > the exact size and then later with the true signature. No shift. > -or- > 2) write the signature once, at the end of the process. Shift required. > > The current implementation involves 1) _plus_ the shift. I can certainly > improve on that. > > > > [1] http://tools.ietf.org/html/rfc2315#section-9.1 I think another option would be to process the data in two passes. The first pass generates all the hash values, and the second pass writes out the file. --Sean From jonathan.gibbons at oracle.com Wed May 12 10:44:41 2010 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Wed, 12 May 2010 17:44:41 +0000 Subject: hg: jigsaw/jigsaw/langtools: 12 new changesets Message-ID: <20100512174506.28B934451B@hg.openjdk.java.net> Changeset: 1ca31dac9b21 Author: jjg Date: 2010-03-05 11:03 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/1ca31dac9b21 update javac to use Jigsaw module system ! make/build.properties ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Modules.java + src/share/classes/com/sun/tools/javac/file/CompositeLocation.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/RegularFileObject.java + src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java + src/share/classes/com/sun/tools/javac/jigsaw/JigsawLibraryLocation.java + src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/main/OptionName.java ! src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/resources/javac.properties ! src/share/classes/javax/lang/model/element/ModuleElement.java + src/share/classes/javax/tools/ExtendedLocation.java ! src/share/classes/javax/tools/JavaFileManager.java ! test/tools/javac/T6705935.java + test/tools/javac/modules/ModulePathTest02.java ! test/tools/javac/modules/ModuleRequiresAttributeTest01.java ! test/tools/javac/modules/ModuleResolverTest03.java ! test/tools/javac/modules/ModuleResolverTest04.java + test/tools/javac/modules/ModuleVersionQueryTest01.java ! test/tools/javac/modules/ModuleVersionTest01.java ! test/tools/javac/processing/6348193/T6348193.java Changeset: db42ae6a8c6f Author: jjg Date: 2010-03-05 11:08 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/db42ae6a8c6f Merge ! make/build.properties ! src/share/classes/com/sun/tools/classfile/ConstantPool.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties - test/tools/javac/treepostests/TreePosTest.java Changeset: 9e09f5e06cd3 Author: jjg Date: 2010-04-01 10:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/9e09f5e06cd3 javac fixes for annotations and bootclasspath ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/Modules.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/TEST.ROOT + test/tools/javac/modules/ModuleAnnotsTest01.java ! test/tools/javac/modules/ModulePathTest02.java Changeset: 4d751f7a12f8 Author: jjg Date: 2010-04-26 15:36 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/4d751f7a12f8 ongoing fixes ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Modules.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java ! src/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java + src/share/classes/com/sun/tools/javac/util/Debug.java ! src/share/classes/javax/lang/model/element/ModuleElement.java ! src/share/classes/javax/lang/model/util/ModuleResolver.java ! test/tools/javac/4846262/Test.sh ! test/tools/javac/4880220/T4880220.java ! test/tools/javac/6508981/TestInferBinaryName.java ! test/tools/javac/6508981/p/A.java ! test/tools/javac/6734819/T6734819a.java ! test/tools/javac/6734819/T6734819b.java ! test/tools/javac/6734819/T6734819c.java ! test/tools/javac/OverrideChecks/6199153/T6199153.java ! test/tools/javac/Paths/MineField.sh ! test/tools/javac/T6558476.java ! test/tools/javac/T6725036.java ! test/tools/javac/T6873845.java ! test/tools/javac/api/T6877206.java + test/tools/javac/modules/ModuleModeTests/DerbyTest.java + test/tools/javac/modules/ModuleModeTests/HelloAWTTest.java + test/tools/javac/modules/ModuleModeTests/HelloWorldTest.java + test/tools/javac/modules/ModuleModeTests/TestRunner.java ! test/tools/javac/modules/ModulePathTest02.java + test/tools/javac/modules/ModuleResolverTest05.java ! test/tools/javac/nio/compileTest/CompileTest.java + test/tools/javac/proprietary/Test.java ! test/tools/javac/proprietary/WarnClass.java ! test/tools/javac/proprietary/WarnImport.java ! test/tools/javac/proprietary/WarnMethod.java ! test/tools/javac/proprietary/WarnStaticImport.java ! test/tools/javac/proprietary/WarnVariable.java ! test/tools/javac/proprietary/WarnWildcard.java - test/tools/javap/T6305779.java ! test/tools/javap/T6729471.java Changeset: 699f55cb86cd Author: jjg Date: 2010-04-26 15:36 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/699f55cb86cd Merge Changeset: 6e32951e6c62 Author: jjg Date: 2010-04-28 11:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/6e32951e6c62 javac fixes ! src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java ! src/share/classes/com/sun/tools/javac/jigsaw/JigsawLibraryLocation.java - test/tools/javac/modules/ModuleAnnotsTest01.java ! test/tools/javac/modules/ModulePathTest02.java Changeset: 85d50689f53f Author: jjg Date: 2010-04-28 11:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/85d50689f53f Merge Changeset: 34409eee336b Author: jjg Date: 2010-04-30 08:31 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/34409eee336b javac updates ! src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java ! src/share/classes/com/sun/tools/javac/util/Debug.java ! test/tools/javac/api/6411310/Test.java ! test/tools/javac/modules/ModuleRequiresAttributeTest01.java Changeset: 6fcc993f6a1d Author: jjg Date: 2010-04-30 08:34 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/6fcc993f6a1d Merge ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Changeset: 1b4b3b523edc Author: jjg Date: 2010-04-30 08:37 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/1b4b3b523edc fix whitespace ! src/share/classes/com/sun/tools/apt/resources/apt.properties ! src/share/classes/com/sun/tools/classfile/ModuleClass_attribute.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Modules.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/ZipArchive.java ! src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java ! src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java ! src/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javap/ConstantWriter.java ! src/share/classes/com/sun/tools/javap/resources/javap.properties ! test/tools/javac/6508981/TestInferBinaryName.java ! test/tools/javac/T6558476.java ! test/tools/javac/T6705935.java ! test/tools/javac/T6725036.java ! test/tools/javac/T6873845.java ! test/tools/javac/api/6411310/Test.java ! test/tools/javac/api/T6877206.java ! test/tools/javac/modules/ModuleAnnotsTest01.java ! test/tools/javac/modules/ModuleModeTests/DerbyTest.java ! test/tools/javac/modules/ModuleModeTests/HelloAWTTest.java ! test/tools/javac/modules/ModuleModeTests/HelloWorldTest.java ! test/tools/javac/modules/ModuleModeTests/TestRunner.java ! test/tools/javac/modules/ModulePathTest02.java ! test/tools/javac/modules/ModuleRequiresAttributeTest01.java ! test/tools/javac/modules/ModuleResolverTest03.java ! test/tools/javac/modules/ModuleResolverTest04.java ! test/tools/javac/modules/ModuleResolverTest05.java ! test/tools/javac/modules/ModuleVersionQueryTest01.java ! test/tools/javac/nio/compileTest/CompileTest.java ! test/tools/javac/proprietary/Test.java ! test/tools/javac/proprietary/WarnClass.java ! test/tools/javac/proprietary/WarnImport.java ! test/tools/javac/proprietary/WarnMethod.java ! test/tools/javac/proprietary/WarnStaticImport.java ! test/tools/javac/proprietary/WarnVariable.java ! test/tools/javac/proprietary/WarnWildcard.java ! test/tools/javap/T6729471.java Changeset: 54a0b81286cc Author: jjg Date: 2010-04-30 11:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/54a0b81286cc Merge fixes, fix new tests ! make/build.properties ! src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! test/tools/javac/varargs/6730476/T6730476a.java ! test/tools/javac/varargs/6730476/T6730476b.java Changeset: 3a8b6df6d4f9 Author: jjg Date: 2010-05-11 10:03 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/3a8b6df6d4f9 Merge From jonathan.gibbons at oracle.com Wed May 12 12:12:49 2010 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Wed, 12 May 2010 19:12:49 +0000 Subject: hg: jigsaw/jigsaw/langtools: 9 new changesets Message-ID: <20100512191305.85A2944535@hg.openjdk.java.net> Changeset: 06e06ec0d6f2 Author: yhuang Date: 2010-04-11 23:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/06e06ec0d6f2 6875904: Java 7 message synchronization 1 Reviewed-by: ogino, faryad ! src/share/classes/com/sun/tools/apt/resources/apt_ja.properties ! src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/javac_ja.properties ! src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties Changeset: 053bf290d575 Author: yhuang Date: 2010-04-20 01:30 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/053bf290d575 Merge - test/tools/javap/T6305779.java Changeset: b68de5eee27b Author: mikejwre Date: 2010-04-28 20:04 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/b68de5eee27b Merge Changeset: ebf79cbf5711 Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/ebf79cbf5711 Added tag jdk7-b90 for changeset 71c2c23a7c35 ! .hgtags Changeset: 97b6fa97b8dd Author: mikejwre Date: 2010-04-29 14:10 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/97b6fa97b8dd Merge ! test/tools/javac/generics/diamond/neg/Neg01.java ! test/tools/javac/generics/diamond/neg/Neg01.out ! test/tools/javac/generics/diamond/neg/Neg02.java ! test/tools/javac/generics/diamond/neg/Neg02.out ! test/tools/javac/generics/diamond/neg/Neg03.java ! test/tools/javac/generics/diamond/neg/Neg03.out ! test/tools/javac/generics/diamond/neg/Neg04.java ! test/tools/javac/generics/diamond/neg/Neg04.out ! test/tools/javac/generics/diamond/neg/Neg05.java ! test/tools/javac/generics/diamond/neg/Neg05.out ! test/tools/javac/generics/diamond/pos/Pos01.java ! test/tools/javac/generics/diamond/pos/Pos02.java ! test/tools/javac/generics/diamond/pos/Pos03.java ! test/tools/javac/generics/diamond/pos/Pos04.java Changeset: 98cba5876cb5 Author: mikejwre Date: 2010-04-29 14:33 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/98cba5876cb5 Added tag jdk7-b91 for changeset 97b6fa97b8dd ! .hgtags Changeset: c399da99fa16 Author: lana Date: 2010-05-02 15:55 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/c399da99fa16 Merge Changeset: a6f2911a7c55 Author: mcimadamore Date: 2010-05-03 17:12 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/a6f2911a7c55 6943289: Project Coin: Improved Exception Handling for Java (aka 'multicatch') Reviewed-by: jjg, darcy + src/share/classes/com/sun/source/tree/DisjointTypeTree.java ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java + test/tools/javac/multicatch/Neg01.java + test/tools/javac/multicatch/Neg01.out + test/tools/javac/multicatch/Neg02.java + test/tools/javac/multicatch/Neg02.out + test/tools/javac/multicatch/Neg03.java + test/tools/javac/multicatch/Neg03.out + test/tools/javac/multicatch/Neg04.java + test/tools/javac/multicatch/Neg04.out + test/tools/javac/multicatch/Pos01.java + test/tools/javac/multicatch/Pos02.java + test/tools/javac/multicatch/Pos03.java + test/tools/javac/multicatch/Pos04.java + test/tools/javac/multicatch/Pos05.java Changeset: 27b43a2a4d41 Author: jjg Date: 2010-05-12 12:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/27b43a2a4d41 Merge ! .hgtags ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java From mandy.chung at oracle.com Thu May 13 18:46:40 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:46:40 +0000 Subject: hg: jigsaw/jigsaw: 18 new changesets Message-ID: <20100514014640.F390144797@hg.openjdk.java.net> Changeset: 3ddf90b39176 Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/3ddf90b39176 Added tag jdk7-b85 for changeset cf26288a114b ! .hgtags Changeset: 4d7419e4b759 Author: ohair Date: 2010-03-06 15:00 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/4d7419e4b759 6928700: Configure top repo for JPRT testing Reviewed-by: alanb, jjg ! make/jprt.properties + test/Makefile Changeset: f3664d6879ab Author: ohair Date: 2010-03-06 15:01 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/f3664d6879ab Merge Changeset: 433a60a9c0bf Author: lana Date: 2010-03-09 15:28 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/433a60a9c0bf Merge Changeset: 6b1069f53fbc Author: mikejwre Date: 2010-03-18 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/6b1069f53fbc Added tag jdk7-b86 for changeset 433a60a9c0bf ! .hgtags Changeset: 82135c848d5f Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/82135c848d5f Added tag jdk7-b87 for changeset 6b1069f53fbc ! .hgtags Changeset: 9d9097eb4b5a Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/9d9097eb4b5a Added tag jdk7-b88 for changeset 82135c848d5f ! .hgtags Changeset: bbd817429100 Author: jjg Date: 2010-03-12 15:22 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/bbd817429100 6934712: run langtools jtreg tests from top level test/Makefile Reviewed-by: ohair ! test/Makefile Changeset: c60ed0f6d91a Author: ohair Date: 2010-03-12 17:44 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/c60ed0f6d91a 6934759: Add langtools testing to jprt control builds Reviewed-by: jjg ! make/jprt.properties Changeset: 98505d97a822 Author: lana Date: 2010-03-18 18:50 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/98505d97a822 Merge Changeset: 35d272ef7598 Author: ohair Date: 2010-03-19 18:17 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/35d272ef7598 6936788: Minor adjustment to top repo test/Makefile, missing non-zero exit case Reviewed-by: jjg ! test/Makefile Changeset: b1c3b0e44b9d Author: lana Date: 2010-04-08 15:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/b1c3b0e44b9d Merge Changeset: 7f1ba4459972 Author: lana Date: 2010-04-13 16:35 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/7f1ba4459972 Merge Changeset: 425ba3efabbf Author: mikejwre Date: 2010-04-15 13:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/425ba3efabbf Added tag jdk7-b89 for changeset 7f1ba4459972 ! .hgtags Changeset: 97d8b6c659c2 Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/97d8b6c659c2 Added tag jdk7-b90 for changeset 425ba3efabbf ! .hgtags Changeset: 5f5c33d417f3 Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/5f5c33d417f3 Added tag jdk7-b91 for changeset 97d8b6c659c2 ! .hgtags Changeset: b7b4797303cb Author: mikejwre Date: 2010-05-06 18:25 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/b7b4797303cb Added tag jdk7-b92 for changeset 5f5c33d417f3 ! .hgtags Changeset: bb6913e3202a Author: mchung Date: 2010-05-13 18:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/bb6913e3202a Merge ! .hgtags From mandy.chung at oracle.com Thu May 13 18:46:43 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:46:43 +0000 Subject: hg: jigsaw/jigsaw/corba: 9 new changesets Message-ID: <20100514014652.92FDC44798@hg.openjdk.java.net> Changeset: 6253e28826d1 Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/6253e28826d1 Added tag jdk7-b85 for changeset c67a9df7bc0c ! .hgtags Changeset: 09a41111a401 Author: mikejwre Date: 2010-03-18 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/09a41111a401 Added tag jdk7-b86 for changeset 6253e28826d1 ! .hgtags Changeset: 39e14d2da687 Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/39e14d2da687 Added tag jdk7-b87 for changeset 09a41111a401 ! .hgtags Changeset: bb4424c5e778 Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/bb4424c5e778 Added tag jdk7-b88 for changeset 39e14d2da687 ! .hgtags Changeset: 56ce07b0eb47 Author: mikejwre Date: 2010-04-15 13:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/56ce07b0eb47 Added tag jdk7-b89 for changeset bb4424c5e778 ! .hgtags Changeset: bcd2fc089227 Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/bcd2fc089227 Added tag jdk7-b90 for changeset 56ce07b0eb47 ! .hgtags Changeset: 930582f667a1 Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/930582f667a1 Added tag jdk7-b91 for changeset bcd2fc089227 ! .hgtags Changeset: ae18df0d4767 Author: mikejwre Date: 2010-05-06 18:25 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/ae18df0d4767 Added tag jdk7-b92 for changeset 930582f667a1 ! .hgtags Changeset: 3558a167dc8f Author: mchung Date: 2010-05-13 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/3558a167dc8f Merge ! .hgtags From mandy.chung at oracle.com Thu May 13 18:47:01 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:47:01 +0000 Subject: hg: jigsaw/jigsaw/hotspot: 136 new changesets Message-ID: <20100514015144.031C2447A1@hg.openjdk.java.net> Changeset: 418bc80ce139 Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/418bc80ce139 Added tag jdk7-b85 for changeset 6c9796468b91 ! .hgtags Changeset: bf823ef06b4f Author: trims Date: 2010-03-08 15:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/bf823ef06b4f Added tag hs17-b10 for changeset 418bc80ce139 ! .hgtags Changeset: 4b58861a3570 Author: mikejwre Date: 2010-03-18 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4b58861a3570 Added tag jdk7-b86 for changeset bf823ef06b4f ! .hgtags Changeset: 877a14af58e1 Author: never Date: 2010-02-18 15:05 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/877a14af58e1 6663854: assert(n != __null,"Bad immediate dominator info.") in C2 with -Xcomp Reviewed-by: kvn ! src/share/vm/opto/split_if.cpp + test/compiler/6663854/Test6663854.java Changeset: 2883969d09e7 Author: kvn Date: 2010-02-19 10:04 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/2883969d09e7 6910664: C2: java/util/Arrays/Sorting.java fails with DeoptimizeALot flag Summary: Matcher::float_in_double should be true only when FPU is used for floats. Reviewed-by: never, twisti ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/opto/matcher.hpp ! src/share/vm/opto/output.cpp Changeset: b71f13525cc8 Author: never Date: 2010-02-19 13:06 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/b71f13525cc8 6927049: assert(is_Loop(),"invalid node class") Reviewed-by: kvn ! src/share/vm/opto/loopTransform.cpp Changeset: 8b38237bae55 Author: kvn Date: 2010-02-22 16:56 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/8b38237bae55 6928717: HS17 fails to build with SS11 C++ Summary: Add missing handles.inline.hpp for codeCache.cpp. Reviewed-by: never ! src/share/vm/includeDB_core Changeset: 855c5171834c Author: twisti Date: 2010-02-23 17:46 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/855c5171834c 6928839: JSR 292 typo in x86 _adapter_check_cast Summary: There is a small typo in methodHandles_x86.cpp. Reviewed-by: kvn ! src/cpu/x86/vm/methodHandles_x86.cpp Changeset: da9559b49b84 Author: never Date: 2010-02-25 11:38 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/da9559b49b84 6915557: assert(_gvn.type(l)->higher_equal(type),"must constrain OSR typestate") with debug build Reviewed-by: kvn ! src/share/vm/opto/parse1.cpp Changeset: 2432acbee618 Author: kvn Date: 2010-02-25 15:55 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/2432acbee618 6930035: C2 type system incorrectly handles case j.l.Object->meet(constant AryPtr) Summary: Add missing code. Reviewed-by: never ! src/share/vm/opto/type.cpp Changeset: 336c6c200f5f Author: kvn Date: 2010-02-25 22:58 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/336c6c200f5f 6930116: loop predication code does not handle If nodes with only one projection Summary: Add check for iff->outcnt() < 2. Reviewed-by: never ! src/share/vm/opto/loopTransform.cpp Changeset: 7d236a9688c5 Author: never Date: 2010-03-01 12:12 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7d236a9688c5 6930398: fix for return address locals in OSR entries uses wrong test Reviewed-by: kvn ! src/share/vm/opto/parse1.cpp Changeset: b81f3572f355 Author: tonyp Date: 2010-02-23 23:13 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/b81f3572f355 6928059: G1: command line parameter renaming Summary: Rename G1 parameters to make them more consistent. Reviewed-by: jmasa, johnc ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp ! src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: 1c72304f1885 Author: tonyp Date: 2010-02-23 23:14 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/1c72304f1885 6928073: G1: use existing command line parameters for marking cycle initiation Summary: replace the combination of the G1SteadyStateUsed / G1SteadyStateUsedDelta parameteres to decide the marking initiation threshold and instead use InitiatingHeapOccupancyPercent. Reviewed-by: ysr, johnc ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: 5f1f51edaff6 Author: jmasa Date: 2010-02-24 07:00 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/5f1f51edaff6 6928081: G1: rename parameters common with CMS Summary: Rename marking stack sizing flags to be common between G1 and CMS Reviewed-by: ysr, tonyp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/includeDB_core ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/utilities/taskqueue.hpp Changeset: a1c410de27e4 Author: tonyp Date: 2010-02-24 14:56 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/a1c410de27e4 6928065: G1: use existing command line parameters to set the young generation size Summary: see synopsis Reviewed-by: johnc, jmasa ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: ab75c83d7c37 Author: johnc Date: 2010-03-02 13:57 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/ab75c83d7c37 Merge ! src/share/vm/includeDB_core Changeset: 8911d8c0596f Author: phh Date: 2010-02-26 16:40 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/8911d8c0596f 6923123: Hotspot refuses to start when -Xmx4m or -Xms4m is specified Summary: Reduce NewSize from 4m to 1m. Reviewed-by: tonyp, jmasa ! src/share/vm/runtime/globals.hpp Changeset: c76ca382971b Author: johnc Date: 2010-03-02 13:59 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c76ca382971b Merge ! src/share/vm/runtime/globals.hpp Changeset: d47555d7aca8 Author: jmasa Date: 2010-03-03 08:10 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/d47555d7aca8 6910182: CMS: assert(_cursor[j] == _survivor_plab_array[j].end(),"Ctl pt invariant") Summary: Calculation of the slicing of survivor spaces for MT was incorrect. Reviewed-by: ysr ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Changeset: c8a467bf56ad Author: coleenp Date: 2010-03-02 12:09 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c8a467bf56ad 6914050: jvm assertion "guard pages must be in use" in -Xcomp mode Summary: Move creating stack guard pages in jni attach thread before potential java call rather than after. Also cleanup stack guard pages when jni attach fails Reviewed-by: never, dholmes ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/thread.cpp Changeset: 4b0f2f4918ed Author: xlu Date: 2010-03-10 21:42 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4b0f2f4918ed 6933402: RFE: Improve PrintSafepointStatistics output to track cleanup time Summary: Improve the usability of safepoint statistics data. See bug evaluation for more details. Reviewed-by: ysr, dholmes ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/safepoint.hpp Changeset: 12d91eb0f579 Author: acorn Date: 2010-03-11 14:41 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/12d91eb0f579 Merge Changeset: 51db1e4b379d Author: twisti Date: 2010-03-08 04:46 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/51db1e4b379d 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64 Summary: A modified MethodHandlesTest revealed two bugs on x86_64. Reviewed-by: never, jrose ! src/cpu/x86/vm/methodHandles_x86.cpp Changeset: 7de45b5044c3 Author: never Date: 2010-03-09 11:02 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7de45b5044c3 6932270: Allow Java's ELF symtab reader to use separate debuginfo files Reviewed-by: never Contributed-by: Andrew Haley ! agent/src/os/linux/libproc_impl.c ! agent/src/os/linux/symtab.c ! agent/src/os/linux/symtab.h + make/linux/makefiles/build_vm_def.sh ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/linux/makefiles/vm.make Changeset: 3cf667df43ef Author: twisti Date: 2010-03-09 20:16 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3cf667df43ef 6919934: JSR 292 needs to support x86 C1 Summary: This implements JSR 292 support for C1 x86. Reviewed-by: never, jrose, kvn ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/x86/vm/c1_CodeStubs_x86.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_MacroAssembler_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_CodeStubs.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_IR.cpp ! src/share/vm/c1/c1_IR.hpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_MacroAssembler.hpp ! src/share/vm/ci/ciCPCache.cpp ! src/share/vm/ci/ciCPCache.hpp ! src/share/vm/includeDB_compiler1 ! src/share/vm/includeDB_core ! src/share/vm/opto/runtime.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/vframeArray.cpp Changeset: d8e270c4f609 Author: twisti Date: 2010-03-09 23:57 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/d8e270c4f609 Merge Changeset: c466efa608d5 Author: roland Date: 2010-03-05 13:58 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c466efa608d5 6932496: c1: deoptimization of jsr subroutine fails on sparcv9 Summary: store jsr ret bci as intptr constant in c1 debug info Reviewed-by: never ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LinearScan.cpp + test/compiler/6932496/Test6932496.java Changeset: da06d1795d84 Author: twisti Date: 2010-03-11 05:09 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/da06d1795d84 6934089: Zero 32-bit/64kb page fix Summary: The fix for 6927165 increased the number of shadow pages for 32-bit platforms and this causes a problem on systems with 64kb pages. Reviewed-by: twisti Contributed-by: Gary Benson ! src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Changeset: 9eba43136cb5 Author: twisti Date: 2010-03-16 11:52 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/9eba43136cb5 6934494: JSR 292 MethodHandles adapters should be generated into their own CodeBlob Summary: Passing a null pointer to an InvokeDynamic function call should lead to a NullPointerException. Reviewed-by: kvn, never ! src/cpu/sparc/vm/stubRoutines_sparc.hpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/stubRoutines_x86_32.hpp ! src/cpu/x86/vm/stubRoutines_x86_64.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/includeDB_core ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp Changeset: 428a9c451986 Author: kvn Date: 2010-03-16 15:35 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/428a9c451986 6935466: new CodeCache flushing code is not guarded by the flag Summary: Add missing guard. Reviewed-by: never ! src/share/vm/compiler/compileBroker.cpp Changeset: fc2c71045ada Author: twisti Date: 2010-03-17 10:22 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/fc2c71045ada 6934966: JSR 292 add C1 logic for saved SP over MethodHandle calls Summary: The logic for x86 C1 to save the SP over MH calls is pretty straight forward but SPARC handles that differently. Reviewed-by: never, jrose ! src/cpu/sparc/vm/c1_FrameMap_sparc.hpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp Changeset: 2484f4d6a54e Author: kvn Date: 2010-03-17 10:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/2484f4d6a54e 6935535: String.indexOf() returns incorrect result on x86 with SSE4.2 Summary: Added missing counter decrement when substring search restarted. Reviewed-by: twisti ! src/cpu/x86/vm/assembler_x86.cpp + test/compiler/6935535/Test.java Changeset: c047da02984c Author: never Date: 2010-03-17 16:40 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c047da02984c 6930043: C2: SIGSEGV in javasoft.sqe.tests.lang.arr017.arr01702.arr01702.loop_forw(II)I Reviewed-by: kvn ! src/share/vm/opto/loopTransform.cpp ! src/share/vm/opto/loopnode.hpp + test/compiler/6930043/Test6930043.java Changeset: 76c1d7d13ec5 Author: twisti Date: 2010-03-18 09:56 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/76c1d7d13ec5 6932091: JSR 292 x86 code cleanup Summary: Some code cleanups found during the JSR 292 SPARC port. Reviewed-by: kvn, never ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/runtime/arguments.cpp Changeset: 97fe2cc98b1d Author: twisti Date: 2010-03-18 06:36 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/97fe2cc98b1d Merge Changeset: 6c94fe3c8df3 Author: trims Date: 2010-03-18 16:06 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/6c94fe3c8df3 Merge Changeset: 07226e9eab8f Author: trims Date: 2010-03-18 17:21 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/07226e9eab8f 6936366: Fork HS17 to HS18 - renumber Major and build numbers of JVM Summary: Update the Major and build numbers for HS18 fork Reviewed-by: jcoomes ! make/hotspot_version Changeset: 3deb84ecd19d Author: trims Date: 2010-03-23 20:28 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3deb84ecd19d Added tag hs18-b01 for changeset 07226e9eab8f ! .hgtags Changeset: e7e7e36ccdb5 Author: trims Date: 2010-03-23 20:37 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e7e7e36ccdb5 Merge ! .hgtags Changeset: 465c39e1fb46 Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/465c39e1fb46 Added tag jdk7-b87 for changeset e7e7e36ccdb5 ! .hgtags Changeset: 2a1472c30599 Author: jcoomes Date: 2010-03-03 14:48 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/2a1472c30599 4396719: Mark Sweep stack overflow on deeply nested Object arrays Summary: Use an explicit stack for object arrays and process them in chunks. Reviewed-by: iveresov, apetrusenko ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/includeDB_gc_parallelScavenge ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp + src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/gc_implementation/shared/markSweep.hpp ! src/share/vm/gc_implementation/shared/markSweep.inline.hpp ! src/share/vm/includeDB_core ! src/share/vm/includeDB_gc_parallel ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayKlass.hpp + src/share/vm/oops/objArrayKlass.inline.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/taskqueue.cpp ! src/share/vm/utilities/taskqueue.hpp Changeset: 94946bdf36bd Author: apetrusenko Date: 2010-03-15 02:56 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/94946bdf36bd Merge Changeset: 664ae0c5e0e5 Author: johnc Date: 2010-03-11 11:44 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/664ae0c5e0e5 6755988: G1: assert(new_obj != 0 || ... "should be forwarded") Summary: A TLAB became large enough to be considered a humongous object allowing multiple objects to be allocated in a humongous region, which violates a basic assumption about humongous regions. The changes ensure that TLABs cannot be regarded as humongous. Reviewed-by: iveresov, tonyp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Changeset: 3f0549ed0c98 Author: apetrusenko Date: 2010-03-18 01:48 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3f0549ed0c98 6921710: G1: assert(new_finger >= _finger && new_finger < _region_limit,"invariant") Summary: If CM task was aborted while scanning the last object of the specified region and the size of that object is equal to bitmap's granularity then the next offset would be equal or over the region limit which is exactly what the assertion states. Reviewed-by: ysr, tonyp, jmasa ! src/share/vm/gc_implementation/g1/concurrentMark.cpp Changeset: c385bf94cfb8 Author: jcoomes Date: 2010-03-18 13:31 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c385bf94cfb8 6935839: excessive marking stack growth during full gcs Summary: process one item at a time from the objarray stack/queue Reviewed-by: apetrusenko, tonyp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp ! src/share/vm/gc_implementation/shared/markSweep.cpp Changeset: cc98cc548f51 Author: apetrusenko Date: 2010-03-22 02:40 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/cc98cc548f51 Merge ! src/share/vm/includeDB_core ! src/share/vm/runtime/arguments.cpp Changeset: d4197f8d516a Author: tonyp Date: 2010-03-18 12:14 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/d4197f8d516a 6935821: G1: threads created during marking do not active their SATB queues Summary: Newly-created threads always had the active field of their SATB queue initialized to false, even if they were created during marking. As a result, updates from threads created during a marking cycle were never enqueued and never processed. The fix includes remaining a method from active() to is_active() for readability and naming consistency. Reviewed-by: ysr, johnc ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/g1/ptrQueue.hpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/g1/satbQueue.hpp Changeset: 5c9df1575c39 Author: trims Date: 2010-04-01 16:10 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/5c9df1575c39 Merge Changeset: 096b18156d91 Author: trims Date: 2010-04-01 16:15 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/096b18156d91 6940419: Bump the HS18 build number to 02 Summary: Update the HS18 build number to 02 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 3b3d12e645e7 Author: coleenp Date: 2010-03-12 10:42 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3b3d12e645e7 6929067: Stack guard pages should be removed when thread is detached Summary: Add code to unmap stack guard area when thread is detached. Reviewed-by: coleenp, kamg ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.cpp + test/runtime/6929067/T.java + test/runtime/6929067/Test6929067.sh + test/runtime/6929067/invoke.c Changeset: 0f6600cee529 Author: xlu Date: 2010-03-13 16:32 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0f6600cee529 6934758: Expose the break down of clean up task time during safepoint. Summary: Use -XX:+TraceSafepointCleanupTime to print out the details of each clean up tasks. Reviewed-by: dholmes, ysr ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/safepoint.cpp Changeset: 21141e23627a Author: dcubed Date: 2010-03-16 17:47 -0600 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/21141e23627a 6923488: 4/4 need minor tweaks to HotSpot build for Cygwin Summary: Clean up get_msc_ver, build.bat and build.make in general and for Cygwin. Reviewed-by: ohair ! make/windows/build.bat ! make/windows/build.make ! make/windows/get_msc_ver.sh Changeset: cd20a6f46fec Author: dcubed Date: 2010-03-16 20:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/cd20a6f46fec Merge Changeset: e392695de029 Author: fparain Date: 2010-03-17 11:01 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e392695de029 6935224: Adding new DTrace probes to work with Palantir Summary: Adding probes related to thread scheduling and class initialization Reviewed-by: kamg, never ! src/os/solaris/dtrace/hotspot.d ! src/os/solaris/vm/attachListener_solaris.cpp ! src/share/vm/includeDB_core ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/services/dtraceAttacher.cpp ! src/share/vm/services/dtraceAttacher.hpp Changeset: 98ba8ca25feb Author: coleenp Date: 2010-03-18 16:47 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/98ba8ca25feb 6936168: Recent fix for unmapping stack guard pages doesn't close /proc/self/maps Summary: Add close to returns (fix for 6929067 also contributed by aph) Reviewed-by: aph, dcubed, andrew, acorn Contributed-by: aph at redhat.com, andreas.kohn at fredhopper.com ! src/os/linux/vm/os_linux.cpp Changeset: 4f7af0dc447b Author: dcubed Date: 2010-03-23 14:37 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4f7af0dc447b 6915365: 3/4 assert(false,"Unsupported VMGlobal Type") at management.cpp:1540 Summary: Remove assert to decouple JDK and HotSpot additions of known types. Reviewed-by: mchung ! src/share/vm/services/management.cpp Changeset: 5d393243d487 Author: dcubed Date: 2010-03-23 17:29 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/5d393243d487 Merge Changeset: 39e409a664b3 Author: dcubed Date: 2010-03-25 16:27 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/39e409a664b3 6938185: 3/4 6923488 breaks Windows command shell builds Summary: Fix build.bat so invoking command shell doesn't exit on error. Fix dirname assumptions. Document some MKS environment dependencies. Reviewed-by: coleenp ! make/windows/build.bat ! make/windows/build.make ! make/windows/create.bat ! make/windows/get_msc_ver.sh Changeset: 84043c7507b9 Author: dcubed Date: 2010-03-25 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/84043c7507b9 Merge Changeset: 4a9cc99938e3 Author: acorn Date: 2010-03-26 11:10 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4a9cc99938e3 Merge ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/share/vm/includeDB_core ! src/share/vm/runtime/globals.hpp Changeset: 7c358fbb6a84 Author: acorn Date: 2010-04-01 11:23 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7c358fbb6a84 Merge Changeset: 4b60f23c4223 Author: acorn Date: 2010-04-01 20:48 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4b60f23c4223 Merge Changeset: 3f12a94552cc Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3f12a94552cc Added tag jdk7-b88 for changeset 4b60f23c4223 ! .hgtags Changeset: b5d78a3b8843 Author: kvn Date: 2009-12-03 14:20 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/b5d78a3b8843 6892265: System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes Summary: Use size_t type cast to widen int values in typeArrayKlass::copy_array(). Reviewed-by: never, jcoomes ! src/share/vm/oops/typeArrayKlass.cpp + test/compiler/6892265/Test.java Changeset: ae4032fb0a5b Author: kvn Date: 2010-01-21 10:07 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/ae4032fb0a5b 6894807: No ClassCastException for HashAttributeSet constructors if run with -Xcomp Summary: Return interface klass type if it is exact. Reviewed-by: never ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/type.cpp Changeset: 0c3f888b7636 Author: acorn Date: 2010-01-19 16:03 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0c3f888b7636 6626217: Fixed loader constraint array handling Summary: Loader constraints track array elements, not arrays themselves. Reviewed-by: dcubed, kevinw ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/systemDictionary.cpp Changeset: 3d531bbe5917 Author: acorn Date: 2010-01-28 13:59 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3d531bbe5917 Merge Changeset: f5dd08ad65df Author: acorn Date: 2010-03-15 15:51 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/f5dd08ad65df 6932480: Fix crash in CompilerThread/Parser. Unloaded array klass? Summary: Restore code deleted in 6626217 Reviewed-by: asaha, kevinw ! src/share/vm/ci/ciEnv.cpp Changeset: 09ac706c2623 Author: asaha Date: 2010-03-24 17:16 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/09ac706c2623 Merge ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/systemDictionary.cpp - src/share/vm/gc_implementation/g1/ptrQueue.inline.hpp ! src/share/vm/opto/type.cpp Changeset: 5b29c2368d93 Author: lana Date: 2010-04-08 15:28 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/5b29c2368d93 Merge ! src/share/vm/opto/type.cpp Changeset: 15836273ac24 Author: lana Date: 2010-04-13 16:36 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/15836273ac24 Merge Changeset: 765578777b6e Author: mikejwre Date: 2010-04-15 13:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/765578777b6e Added tag jdk7-b89 for changeset 15836273ac24 ! .hgtags Changeset: 4c78b7c16824 Author: trims Date: 2010-04-15 19:08 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/4c78b7c16824 6944398: Bump the HS18 build number to 03 Summary: Update the HS18 build number to 03 Reviewed-by: jcoomes ! make/hotspot_version Changeset: fdd57634910e Author: never Date: 2010-03-18 14:31 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/fdd57634910e 6926979: should simplify catch_inline_exception Reviewed-by: twisti ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/parse.hpp ! src/share/vm/opto/parse1.cpp ! src/share/vm/runtime/globals.hpp Changeset: 747d26efc5fa Author: twisti Date: 2010-03-30 00:57 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/747d26efc5fa 6939180: Zero locking fix Summary: When Zero is running with Shark enabled threads can be left with their _do_not_unlock_if_synchronized flag incorrectly set. Reviewed-by: twisti Contributed-by: Gary Benson ! src/cpu/zero/vm/cppInterpreter_zero.cpp Changeset: 47742b654fcb Author: twisti Date: 2010-03-31 08:03 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/47742b654fcb 6939731: JSR 292 Zero build fix after 6934494 Summary: The changes of 6934494 have broken the Zero build. Reviewed-by: twisti Contributed-by: Gary Benson ! src/cpu/zero/vm/methodHandles_zero.cpp ! src/cpu/zero/vm/stubRoutines_zero.hpp Changeset: f61d795ce6de Author: never Date: 2010-03-31 11:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/f61d795ce6de 6939845: zero needs fallback path in C++ interpreter for platform dependent fast bytecodes Reviewed-by: never Contributed-by: ed at camswl.com ! src/share/vm/interpreter/bytecodeInterpreter.cpp Changeset: 7f4deda46b04 Author: never Date: 2010-03-31 16:29 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7f4deda46b04 Merge Changeset: 547cbe6dacc5 Author: never Date: 2010-04-01 16:06 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/547cbe6dacc5 6936709: AsyncGetCallTrace doesn't handle inexact stack walking properly Reviewed-by: kvn ! src/share/vm/prims/forte.cpp Changeset: 1c9c45172908 Author: kvn Date: 2010-04-02 11:55 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/1c9c45172908 6939804: ciConstant::print() prints incorrect bool value Summary: Fix typo. Reviewed-by: never ! src/share/vm/ci/ciConstant.cpp Changeset: 9bb91718aaf2 Author: kvn Date: 2010-04-02 15:55 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/9bb91718aaf2 Merge ! src/share/vm/runtime/globals.hpp Changeset: 895d9ade6111 Author: asaha Date: 2010-04-06 22:06 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/895d9ade6111 Merge ! src/share/vm/opto/type.cpp Changeset: a2ea687fdc7c Author: coleenp Date: 2010-03-31 16:51 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/a2ea687fdc7c 6938627: Make temporary directory use property java.io.tmpdir when specified Summary: Get java.io.tmpdir property in os::get_temp_directory() and call this instead of harcoding "/tmp". Don't assume trailing file_separator either. Reviewed-by: dholmes, kamg ! src/os/linux/vm/attachListener_linux.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/linux/vm/perfMemory_linux.cpp ! src/os/solaris/vm/attachListener_solaris.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/solaris/vm/perfMemory_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os/windows/vm/perfMemory_windows.cpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/utilities/ostream.cpp ! src/share/vm/utilities/vmError.cpp Changeset: 0fd6320854d3 Author: jcoomes Date: 2010-04-02 17:04 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0fd6320854d3 Merge Changeset: 6ccd32c284ac Author: kamg Date: 2010-04-07 12:28 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/6ccd32c284ac Merge Changeset: 56507bcd639e Author: tonyp Date: 2010-03-30 15:36 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/56507bcd639e 6937160: G1: should observe GCTimeRatio Summary: Remove the G1GCPercent parameter, that specifies the desired GC overhead percentage in G1, and observe the GCTimeRatio parameter instead. Reviewed-by: jmasa, johnc ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/runtime/arguments.cpp Changeset: 781e29eb8e08 Author: tonyp Date: 2010-04-02 12:10 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/781e29eb8e08 6677708: G1: re-enable parallel RSet updating and scanning Summary: Enable parallel RSet updating and scanning. Reviewed-by: iveresov, jmasa ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: 72f725c5a7be Author: tonyp Date: 2010-04-05 12:19 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/72f725c5a7be 6940310: G1: MT-unsafe calls to CM::region_stack_push() / CM::region_stack_pop() Summary: Calling the methods region_stack_push() and region_stack_pop() concurrent is not MT-safe. The assumption is that we will only call region_stack_push() during a GC pause and region_stack_pop() during marking. Unfortunately, we also call region_stack_push() during marking which seems to be introducing subtle marking failures. This change introduces lock-based methods for pushing / popping to be called during marking. Reviewed-by: iveresov, johnc ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/mutexLocker.hpp Changeset: 23b1b27ac76c Author: tonyp Date: 2010-04-06 10:59 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/23b1b27ac76c 6909756: G1: guarantee(G1CollectedHeap::heap()->mark_in_progress(),"Precondition.") Summary: Make sure that two marking cycles do not overlap, i.e., a new one can only start after the concurrent marking thread finishes all its work. In the fix I piggy-back a couple of minor extra fixes: some general code reformatting for consistency (only around the code I modified), the removal of a field (G1CollectorPolicy::_should_initiate_conc_mark) which doesn't seem to be used at all (it's only set but never read), as well as moving the "is GC locker active" test earlier into the G1 pause / Full GC and using a more appropriate method for it. Reviewed-by: johnc, jmasa, jcoomes, ysr ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Changeset: bda703475ded Author: johnc Date: 2010-04-07 11:43 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/bda703475ded 6940894: G1: assert(new_obj != 0 || ... "should be forwarded") for compaction tests Summary: Humongous regions may contain multiple objects as a result of being retained as to-space from a previous GC and then re-used as to-space after being tagged as humongous. These changes include a check that causes retained to-space regions that are now tagged as humongous to be disregarded and a new to-space region allocated. Reviewed-by: tonyp, iveresov ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: 6b73e879f1c2 Author: tonyp Date: 2010-04-09 13:08 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/6b73e879f1c2 Merge Changeset: e4c77b879561 Author: tonyp Date: 2010-04-09 15:01 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e4c77b879561 Merge Changeset: ed4f78aa9282 Author: twisti Date: 2010-04-06 13:39 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/ed4f78aa9282 6940520: CodeCache::scavenge_root_nmethods_do must fix oop relocations Summary: ScavengeRootsInCode can lead to unfixed code-embedded oops. Reviewed-by: kvn, never ! src/share/vm/code/codeCache.cpp Changeset: 0dc88ad3244e Author: kvn Date: 2010-04-06 15:18 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0dc88ad3244e 6940677: Use 64 bytes chunk copy for arraycopy on Sparc Summary: For large arrays we should use 64 bytes chunks copy. Reviewed-by: twisti ! src/cpu/sparc/vm/stubGenerator_sparc.cpp Changeset: 6476042f815c Author: kvn Date: 2010-04-07 09:37 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/6476042f815c 6940701: Don't align loops in stubs for Niagara sparc Summary: Don't align loops in stubs for Niagara sparc since NOPs are expensive. Reviewed-by: twisti, never ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c2_globals_sparc.hpp ! src/cpu/sparc/vm/globals_sparc.hpp ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/x86/vm/c2_globals_x86.hpp ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/runtime/globals.hpp Changeset: b9d85fcdf743 Author: kvn Date: 2010-04-07 10:35 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/b9d85fcdf743 6940733: allocate non static oop fields in super and sub classes together Summary: Use FieldsAllocationStyle=2 to allocate non static oop fields in super and sub classes together Reviewed-by: twisti ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/runtime/globals.hpp Changeset: 9e321dcfa5b7 Author: kvn Date: 2010-04-07 12:39 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/9e321dcfa5b7 6940726: Use BIS instruction for allocation prefetch on Sparc Summary: Use BIS instruction for allocation prefetch on Sparc Reviewed-by: twisti ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/share/vm/memory/threadLocalAllocBuffer.hpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/runtime/globals.hpp Changeset: 93767e6a2dfd Author: twisti Date: 2010-04-08 10:55 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/93767e6a2dfd 6941529: SharedRuntime::raw_exception_handler_for_return_address must reset thread MethodHandle flag Summary: During testing a bug was hit when an exception returned to the interpreter and the SP was wrong. Reviewed-by: kvn, never ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/runtime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/thread.hpp Changeset: 0a43776437b6 Author: iveresov Date: 2010-04-08 12:13 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0a43776437b6 6942223: c1 64 bit fixes Summary: This fixes lir_cmp_l2i on x64 and sparc 64bit, and the debug info generation. Reviewed-by: never ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/share/vm/c1/c1_LinearScan.cpp Changeset: 213fbcf54799 Author: jrose Date: 2010-04-08 17:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/213fbcf54799 Merge Changeset: fc3cd2277dc7 Author: jrose Date: 2010-04-13 13:01 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/fc3cd2277dc7 Merge Changeset: e16cca0aa5e1 Author: trims Date: 2010-04-15 19:08 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e16cca0aa5e1 Merge Changeset: 25f53b53aaa3 Author: trims Date: 2010-04-15 19:09 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/25f53b53aaa3 Added tag hs18-b02 for changeset 4b60f23c4223 ! .hgtags Changeset: 605c9707a766 Author: trims Date: 2010-04-20 21:38 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/605c9707a766 Merge ! .hgtags Changeset: e0a1a502e402 Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e0a1a502e402 Added tag jdk7-b90 for changeset 605c9707a766 ! .hgtags Changeset: 03a8443caa4b Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/03a8443caa4b Added tag jdk7-b91 for changeset e0a1a502e402 ! .hgtags Changeset: ef74d6d1ac1e Author: never Date: 2010-04-14 15:30 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/ef74d6d1ac1e 6938026: C2 compiler fails in Node::rematerialize()const Reviewed-by: twisti ! src/share/vm/opto/parse1.cpp Changeset: 9f5b60a14736 Author: never Date: 2010-04-15 18:14 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/9f5b60a14736 6939930: exception unwind changes in 6919934 hurts compilation speed Reviewed-by: twisti ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: f9271ff9d324 Author: twisti Date: 2010-04-15 02:40 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/f9271ff9d324 6941224: Improved stack overflow handling for Zero Summary: Adding stack overflow checking to Shark brought to light a bunch of deficiencies in Zero's stack overflow code. Reviewed-by: twisti Contributed-by: Gary Benson ! src/cpu/zero/vm/cppInterpreter_zero.cpp ! src/cpu/zero/vm/cppInterpreter_zero.hpp ! src/cpu/zero/vm/entryFrame_zero.hpp ! src/cpu/zero/vm/fakeStubFrame_zero.hpp ! src/cpu/zero/vm/interpreterFrame_zero.hpp ! src/cpu/zero/vm/interpreterRT_zero.cpp ! src/cpu/zero/vm/stack_zero.hpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/os_cpu/linux_zero/vm/thread_linux_zero.hpp ! src/share/vm/includeDB_zero Changeset: badea972a310 Author: twisti Date: 2010-04-16 00:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/badea972a310 Merge Changeset: a9584793da0f Author: twisti Date: 2010-04-15 03:13 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/a9584793da0f 6944028: 6940701 broke Zero Summary: The fix for 6940701 broke Zero. Reviewed-by: twisti Contributed-by: Gary Benson ! src/cpu/zero/vm/globals_zero.hpp Changeset: d32d2a2f62cd Author: twisti Date: 2010-04-16 02:59 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/d32d2a2f62cd Merge Changeset: aa9c266de52a Author: twisti Date: 2010-04-16 05:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/aa9c266de52a 6944473: 6941224 misses new files Summary: Two new files are missing in the push for 6941224. Reviewed-by: twisti Contributed-by: Gary Benson + src/cpu/zero/vm/stack_zero.cpp + src/cpu/zero/vm/stack_zero.inline.hpp Changeset: c544d979f886 Author: twisti Date: 2010-04-19 02:13 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/c544d979f886 6944503: Improved Zero crash dump Summary: With Zero on a GC crash the stack was dumped differently to other crashes. Reviewed-by: twisti Contributed-by: Gary Benson ! src/share/vm/utilities/vmError.cpp ! src/share/vm/utilities/vmError.hpp Changeset: bc32f286fae0 Author: never Date: 2010-04-20 13:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/bc32f286fae0 6945219: minor SA fixes Reviewed-by: twisti ! agent/src/os/linux/ps_core.c ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/HSDB.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeDisassembler.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/SignatureIterator.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/ui/FrameWrapper.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/Assert.java Changeset: ba07d5be2d51 Author: jrose Date: 2010-04-21 01:13 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/ba07d5be2d51 Merge Changeset: 0bfd3fb24150 Author: jmasa Date: 2010-04-13 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/0bfd3fb24150 6858496: Clear all SoftReferences before an out-of-memory due to GC overhead limit. Summary: Ensure a full GC that clears SoftReferences before throwing an out-of-memory Reviewed-by: ysr, jcoomes ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/includeDB_gc_parallelScavenge ! src/share/vm/gc_implementation/includeDB_gc_serial ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp ! src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/genMarkSweep.cpp Changeset: 7666957bc44d Author: tonyp Date: 2010-03-30 15:43 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7666957bc44d 6937142: G1: improvements to debugging output (S-M) Summary: Various fixes to the G1 debugging output. Reviewed-by: johnc, iveresov ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp Changeset: 5dbd9300cf9c Author: johnc Date: 2010-04-15 15:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/5dbd9300cf9c 6943926: G1: Integer overflow during heap region verification Summary: The expression that calculates the live bytes for a heap region can overflow for a suitably large humongous region/object. Cache the object size in a suitably sized local variable so that the expression is converted to a wider type. Reviewed-by: tonyp, jmasa, iveresov, apetrusenko ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: f9ec1e4bbb44 Author: tonyp Date: 2010-04-15 18:45 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/f9ec1e4bbb44 6939027: G1: assertion failure during the concurrent phase of cleanup Summary: The outgoing region map is not maintained properly and it's causing an assert failure. Given that we don't actually use it, I'm removing it. I'm piggy-backing a small change on this which removes a message that it's printed before a Full GC when DisableExplicitGC is set. Reviewed-by: apetrusenko, ysr ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Changeset: 79e419e5ea3b Author: apetrusenko Date: 2010-04-16 08:48 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/79e419e5ea3b 6942253: G1: replace G1ParallelGCAllocBufferSize with YoungPLABSize and OldPLABSize Summary: Replaces the G1-specific parameter with the existing ones that are used by the other GCs (YoungPLABSize and OldPLABSize) Reviewed-by: tonyp, johnc ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: bdb5361c461c Author: kevinw Date: 2010-04-16 17:36 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/bdb5361c461c 6897143: Stress test crashes during HeapInspection using ParallelGC. Summary: ensure_parsability() must be called even if GC_locker prevents GC. Reviewed-by: ysr, chrisphi ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp Changeset: 6ecb6e6de3d6 Author: kevinw Date: 2010-04-19 05:40 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/6ecb6e6de3d6 Merge Changeset: 1316cec51b4d Author: johnc Date: 2010-04-22 10:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/1316cec51b4d 6819061: G1: eliminate serial Other times that are proportional to the collection set length 6871109: G1: remove the concept of the scan only prefix Summary: Removed scan only regions and associated code. The young portion of the collection set is now constructed incrementally - when a young region is retired as the current allocation region it is added to the collection set. Reviewed-by: apetrusenko, iveresov, tonyp ! src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/survRateGroup.cpp ! src/share/vm/gc_implementation/g1/survRateGroup.hpp ! src/share/vm/services/g1MemoryPool.cpp Changeset: 454ff03c0daf Author: tonyp Date: 2010-04-26 18:01 -0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/454ff03c0daf Merge Changeset: d7f654633cfe Author: never Date: 2010-04-26 11:27 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/d7f654633cfe 6946040: add intrinsic for short and char reverseBytes Reviewed-by: never, twisti Contributed-by: Hiroshi Yamauchi ! make/linux/makefiles/adlc.make ! make/solaris/makefiles/adlc.make ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/adlc/formssel.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/subnode.hpp + test/compiler/6431242/Test.java + test/compiler/6946040/TestCharShortByteSwap.java Changeset: b4776199210f Author: never Date: 2010-04-26 23:59 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/b4776199210f 6943485: JVMTI always on capabilities change code generation too much Reviewed-by: twisti, dcubed ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_Compilation.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_globals.hpp ! src/share/vm/ci/bcEscapeAnalyzer.cpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/opto/c2compiler.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiManageCapabilities.cpp Changeset: 314e17ca2c23 Author: iveresov Date: 2010-04-27 11:19 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/314e17ca2c23 6946892: c1 shouldn't sign-extend to upper 32bits on x64 Summary: c1 does sign-extension when it loads ints and shorts from memory to 64-bit registers. This causes problems for c2 because it relies on the fact the int passed in a 64-bit register is zero-extended. Reviewed-by: never ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Changeset: 90acda19b80f Author: jrose Date: 2010-04-29 00:03 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/90acda19b80f Merge Changeset: 7b03170e1fcb Author: trims Date: 2010-04-29 15:18 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/7b03170e1fcb Merge Changeset: 310cdbc35535 Author: trims Date: 2010-04-29 15:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/310cdbc35535 6948636: Bump the HS18 build number to 04 Summary: Update the HS18 build number to 04 Reviewed-by: jcoomes ! make/hotspot_version Changeset: e3fa0cc77f74 Author: trims Date: 2010-05-04 12:23 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/e3fa0cc77f74 Merge Changeset: 3221d1887d30 Author: trims Date: 2010-05-04 12:25 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/3221d1887d30 Added tag hs18-b03 for changeset 25f53b53aaa3 ! .hgtags Changeset: fd3de7134574 Author: mikejwre Date: 2010-05-06 18:25 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/fd3de7134574 Added tag jdk7-b92 for changeset 3221d1887d30 ! .hgtags Changeset: 8a6c97c3e8d1 Author: mchung Date: 2010-05-13 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/8a6c97c3e8d1 Merge ! .hgtags ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/globals.hpp From mandy.chung at oracle.com Thu May 13 18:52:05 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:52:05 +0000 Subject: hg: jigsaw/jigsaw/jaxp: 9 new changesets Message-ID: <20100514015205.F154F447A2@hg.openjdk.java.net> Changeset: 81c0f115bbe5 Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/81c0f115bbe5 Added tag jdk7-b85 for changeset 6c0ccabb430d ! .hgtags Changeset: 8b493f1aa136 Author: mikejwre Date: 2010-03-18 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/8b493f1aa136 Added tag jdk7-b86 for changeset 81c0f115bbe5 ! .hgtags Changeset: d8ebd1591003 Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/d8ebd1591003 Added tag jdk7-b87 for changeset 8b493f1aa136 ! .hgtags Changeset: d2818fd2b036 Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/d2818fd2b036 Added tag jdk7-b88 for changeset d8ebd1591003 ! .hgtags Changeset: c5d932ee326d Author: mikejwre Date: 2010-04-15 13:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/c5d932ee326d Added tag jdk7-b89 for changeset d2818fd2b036 ! .hgtags Changeset: b89b2c3044a2 Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/b89b2c3044a2 Added tag jdk7-b90 for changeset c5d932ee326d ! .hgtags Changeset: e6a40e4bb104 Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/e6a40e4bb104 Added tag jdk7-b91 for changeset b89b2c3044a2 ! .hgtags Changeset: c725ca829c5a Author: mikejwre Date: 2010-05-06 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/c725ca829c5a Added tag jdk7-b92 for changeset e6a40e4bb104 ! .hgtags Changeset: 14d143bb1fd6 Author: mchung Date: 2010-05-13 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/14d143bb1fd6 Merge ! .hgtags From mandy.chung at oracle.com Thu May 13 18:52:08 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:52:08 +0000 Subject: hg: jigsaw/jigsaw/jaxws: 9 new changesets Message-ID: <20100514015208.92FE3447A3@hg.openjdk.java.net> Changeset: 512b0e924a5a Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/512b0e924a5a Added tag jdk7-b85 for changeset 8424512588ff ! .hgtags Changeset: 3febd6fab2ac Author: mikejwre Date: 2010-03-18 13:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/3febd6fab2ac Added tag jdk7-b86 for changeset 512b0e924a5a ! .hgtags Changeset: 8c666f8f3565 Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/8c666f8f3565 Added tag jdk7-b87 for changeset 3febd6fab2ac ! .hgtags Changeset: bf3675aa7f20 Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/bf3675aa7f20 Added tag jdk7-b88 for changeset 8c666f8f3565 ! .hgtags Changeset: ead7c4566a00 Author: mikejwre Date: 2010-04-15 13:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/ead7c4566a00 Added tag jdk7-b89 for changeset bf3675aa7f20 ! .hgtags Changeset: cf4686bf35ab Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/cf4686bf35ab Added tag jdk7-b90 for changeset ead7c4566a00 ! .hgtags Changeset: df7c033f6a11 Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/df7c033f6a11 Added tag jdk7-b91 for changeset cf4686bf35ab ! .hgtags Changeset: 797bef191975 Author: mikejwre Date: 2010-05-06 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/797bef191975 Added tag jdk7-b92 for changeset df7c033f6a11 ! .hgtags Changeset: 50dbc5808ec3 Author: mchung Date: 2010-05-13 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/50dbc5808ec3 Merge ! .hgtags From mandy.chung at oracle.com Thu May 13 18:52:14 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 14 May 2010 01:52:14 +0000 Subject: hg: jigsaw/jigsaw/jdk: 161 new changesets Message-ID: <20100514022622.63230447A5@hg.openjdk.java.net> Changeset: 03cd9e62961f Author: mikejwre Date: 2010-03-04 13:50 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/03cd9e62961f Added tag jdk7-b85 for changeset b396584a3e64 ! .hgtags Changeset: 840601ac5ab7 Author: rkennke Date: 2010-03-03 15:50 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/840601ac5ab7 6892485: Deadlock in SunGraphicsEnvironment / FontManager Summary: Synchronize on correct monitor in SunFontManager. Reviewed-by: igor, prr ! src/share/classes/sun/font/SunFontManager.java Changeset: 1d7db2d5c4c5 Author: minqi Date: 2010-03-08 11:35 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1d7db2d5c4c5 6918065: Crash in Java2D blit loop (IntArgbToIntArgbPreSrcOverMaskBlit) in 64bit mode Reviewed-by: igor, bae ! src/share/classes/java/awt/AlphaComposite.java + test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java Changeset: 494f5e4f24da Author: lana Date: 2010-03-09 15:26 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/494f5e4f24da Merge Changeset: e64331144648 Author: rupashka Date: 2010-02-10 15:15 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e64331144648 6848475: JSlider does not display the correct value of its BoundedRangeModel Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java + test/javax/swing/JSlider/6848475/bug6848475.java Changeset: f81c8041ccf4 Author: peytoia Date: 2010-02-11 15:58 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f81c8041ccf4 6909002: Remove indicim.jar and thaiim.jar from JRE and move to samples if needed Reviewed-by: okutsu ! make/com/sun/Makefile Changeset: e2b58a45a426 Author: peytoia Date: 2010-02-12 14:38 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e2b58a45a426 6921289: (tz) Support tzdata2010b Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/northamerica ! make/sun/javazic/tzdata/zone.tab ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java Changeset: e8340332745e Author: malenkov Date: 2010-02-18 17:46 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e8340332745e 4498236: RFE: Provide a toString method for PropertyChangeEvent and other classes Reviewed-by: peterz ! src/share/classes/java/beans/BeanDescriptor.java ! src/share/classes/java/beans/EventSetDescriptor.java ! src/share/classes/java/beans/FeatureDescriptor.java ! src/share/classes/java/beans/IndexedPropertyChangeEvent.java ! src/share/classes/java/beans/IndexedPropertyDescriptor.java ! src/share/classes/java/beans/MethodDescriptor.java ! src/share/classes/java/beans/PropertyChangeEvent.java ! src/share/classes/java/beans/PropertyDescriptor.java + test/java/beans/Introspector/Test4498236.java Changeset: 5c03237838e1 Author: rupashka Date: 2010-02-27 14:26 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/5c03237838e1 6913758: Specification for SynthViewportUI.paintBorder(...) should mention that this method is never called Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java Changeset: 96205ed1b196 Author: rupashka Date: 2010-02-27 14:47 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/96205ed1b196 6918447: SynthToolBarUI.setBorderToXXXX() methods don't correspond inherited spec. They do nothing. Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java Changeset: 621e921a14cd Author: rupashka Date: 2010-02-27 15:09 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/621e921a14cd 6918861: SynthSliderUI.uninstallDefaults() is not called when UI is uninstalled Reviewed-by: malenkov ! src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java + test/javax/swing/JSlider/6918861/bug6918861.java Changeset: 28741de0bb4a Author: rupashka Date: 2010-02-27 16:03 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/28741de0bb4a 6923305: SynthSliderUI paints the slider track when the slider's "paintTrack" property is set to false Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java + test/javax/swing/JSlider/6923305/bug6923305.java Changeset: 2bf137beb9bd Author: rupashka Date: 2010-02-27 16:14 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2bf137beb9bd 6929298: The SynthSliderUI#calculateTickRect method should be removed Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java Changeset: d6b3a07c8752 Author: rupashka Date: 2010-03-03 17:57 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d6b3a07c8752 6924059: SynthScrollBarUI.configureScrollBarColors() should have spec different from the overridden method Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java + test/javax/swing/JScrollBar/6924059/bug6924059.java Changeset: 30c520bd148f Author: rupashka Date: 2010-03-03 20:08 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/30c520bd148f 6913768: With default SynthLookAndFeel instance installed new JTable creation leads to throwing NPE Reviewed-by: peterz ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java + test/javax/swing/JTable/6913768/bug6913768.java Changeset: f13fc955be62 Author: rupashka Date: 2010-03-03 20:53 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f13fc955be62 6917744: JScrollPane Page Up/Down keys do not handle correctly html tables with different cells contents Reviewed-by: peterz, alexp ! src/share/classes/javax/swing/text/DefaultEditorKit.java + test/javax/swing/JEditorPane/6917744/bug6917744.java + test/javax/swing/JEditorPane/6917744/test.html Changeset: 0622086d82ac Author: malenkov Date: 2010-03-04 21:17 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0622086d82ac 6921644: XMLEncoder generates invalid XML Reviewed-by: peterz ! src/share/classes/java/beans/XMLEncoder.java + test/java/beans/XMLEncoder/Test5023550.java + test/java/beans/XMLEncoder/Test5023557.java + test/java/beans/XMLEncoder/Test6921644.java Changeset: 79a509ac8f35 Author: lana Date: 2010-03-01 18:30 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/79a509ac8f35 Merge ! make/com/sun/Makefile - make/java/text/FILES_java.gmk Changeset: 90248595ec35 Author: lana Date: 2010-03-04 13:07 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/90248595ec35 Merge Changeset: 2fe4e72288ce Author: lana Date: 2010-03-09 15:28 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2fe4e72288ce Merge Changeset: 38fbb2353a6a Author: alanb Date: 2010-02-23 17:56 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/38fbb2353a6a 6925977: (file) test/java/nio/file/Path/CheckPermissions.java fails if test.src on read-only file system Reviewed-by: chegar ! test/java/nio/file/Path/CheckPermissions.java Changeset: 00abf8c232be Author: alanb Date: 2010-02-23 17:58 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/00abf8c232be 6925932: (file) Path.endsWith can throw ArrayIndexOutOfBoundsException (unx) Reviewed-by: chegar ! src/solaris/classes/sun/nio/fs/UnixPath.java ! test/java/nio/file/Path/PathOps.java Changeset: be5db597f3be Author: alanb Date: 2010-02-23 18:19 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/be5db597f3be 6928960: make modules fails to build class analyzer Reviewed-by: mchung ! make/modules/tools/Makefile Changeset: e94b296b53b4 Author: alanb Date: 2010-02-23 18:21 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e94b296b53b4 6926800: TEST_BUG: java/nio/file/Files/walk_file_tree.sh fails with newer versions of find(1) Reviewed-by: forax ! test/java/nio/file/Files/PrintFileTree.java ! test/java/nio/file/Files/walk_file_tree.sh Changeset: e842e99b514a Author: darcy Date: 2010-02-24 10:48 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e842e99b514a 6929382: Various core classes in util and elsewhere are missing @param tags Reviewed-by: dholmes, martin ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/List.java Changeset: 9929203a8b98 Author: xuelei Date: 2010-02-25 13:32 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/9929203a8b98 6916202: More cases of invalid ldap filters accepted and processed Reviewed-by: vinnie, weijun ! src/share/classes/com/sun/jndi/ldap/Filter.java + test/com/sun/jndi/ldap/InvalidLdapFilters.java Changeset: 77beb60b39c6 Author: alanb Date: 2010-02-27 18:18 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/77beb60b39c6 6929532: (file) WatchService should avoid queuing new modify events when lots of files are changing Reviewed-by: alanb Contributed-by: sebastian.sickelmann at gmx.de ! src/share/classes/sun/nio/fs/AbstractWatchKey.java + test/java/nio/file/WatchService/LotsOfEvents.java - test/java/nio/file/WatchService/OverflowEventIsLoner.java Changeset: b77e94f5a601 Author: alanb Date: 2010-02-27 19:15 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b77e94f5a601 6929259: Remove double spaces from Dual-pivot quicksort Reviewed-by: alanb Contributed-by: vladimir.yaroslavskiy at sun.com ! src/share/classes/java/util/DualPivotQuicksort.java Changeset: 529d2da0aee2 Author: alanb Date: 2010-02-27 19:26 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/529d2da0aee2 6815768: File.getxxxSpace() methods fail for very large file systems under 32bit Java Reviewed-by: ohair ! src/solaris/native/java/io/UnixFileSystem_md.c Changeset: f7a6eae6e1eb Author: alanb Date: 2010-02-27 19:29 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f7a6eae6e1eb 6921374: java.lang.String::hashCode() should check for count == 0 to avoid repeated stores hash = 0 Reviewed-by: darcy, ohair ! src/share/classes/java/lang/String.java Changeset: 78d91c4223cb Author: vinnie Date: 2010-03-01 17:54 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/78d91c4223cb 6921001: api/java_security/IdentityScope/IdentityScopeTests.html#getSystemScope fails starting from b78 JDK7 Reviewed-by: mullan ! src/share/classes/java/security/IdentityScope.java ! src/share/lib/security/java.security + test/java/security/IdentityScope/NoDefaultSystemScope.java Changeset: 893034df4ec2 Author: vinnie Date: 2010-03-01 18:00 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/893034df4ec2 Merge - test/java/nio/file/WatchService/OverflowEventIsLoner.java Changeset: cddb43b12d28 Author: alanb Date: 2010-03-03 16:09 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/cddb43b12d28 6931216: TEST_BUG: test/java/nio/file/WatchService/LotsOfEvents.java failed with NPE Reviewed-by: chegar ! test/java/nio/file/WatchService/LotsOfEvents.java Changeset: 507159d8d143 Author: ohair Date: 2010-03-03 11:29 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/507159d8d143 6931763: sanity checks broken with latest cygwin, newer egrep -i option problems Reviewed-by: jjg ! make/common/shared/Sanity.gmk Changeset: 61c298558549 Author: weijun Date: 2010-03-04 10:37 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/61c298558549 6844909: support allow_weak_crypto in krb5.conf Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/internal/crypto/EType.java + test/sun/security/krb5/etype/WeakCrypto.java + test/sun/security/krb5/etype/weakcrypto.conf Changeset: 0f383673ce31 Author: weijun Date: 2010-03-04 10:38 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0f383673ce31 6923681: Jarsigner crashes during timestamping Reviewed-by: vinnie ! src/share/classes/sun/security/tools/TimestampedSigner.java Changeset: 5e15b70e6d27 Author: weijun Date: 2010-03-04 10:38 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/5e15b70e6d27 6880321: sun.security.provider.JavaKeyStore abuse of OOM Exception handling Reviewed-by: xuelei ! src/share/classes/sun/security/provider/JavaKeyStore.java Changeset: c2d29e5695c2 Author: lana Date: 2010-03-04 13:40 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c2d29e5695c2 Merge Changeset: 58b44ac0b10d Author: ohair Date: 2010-03-06 14:59 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/58b44ac0b10d 6915983: testing problems, adjusting list of tests, needs some investigation Reviewed-by: alanb ! test/Makefile ! test/ProblemList.txt Changeset: eae6e9ab2606 Author: lana Date: 2010-03-09 15:29 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/eae6e9ab2606 Merge - test/java/nio/file/WatchService/OverflowEventIsLoner.java Changeset: 2cafbbe9825e Author: mikejwre Date: 2010-03-18 13:53 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2cafbbe9825e Added tag jdk7-b86 for changeset eae6e9ab2606 ! .hgtags Changeset: b3c69282f6d3 Author: mikejwre Date: 2010-03-25 15:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b3c69282f6d3 Added tag jdk7-b87 for changeset 2cafbbe9825e ! .hgtags Changeset: b50cfd4479fa Author: mikejwre Date: 2010-04-08 17:02 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b50cfd4479fa Added tag jdk7-b88 for changeset b3c69282f6d3 ! .hgtags Changeset: 0137b5857c63 Author: okutsu Date: 2010-03-10 14:32 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0137b5857c63 6932473: (tz) javazic produces incorrect SimpleTimeZone parameters with Sun<=7 Reviewed-by: peytoia ! make/tools/src/build/tools/javazic/RuleDay.java Changeset: 0e0ce1aa1bba Author: peytoia Date: 2010-03-11 11:54 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0e0ce1aa1bba 6933032: (tz) Support tzdata2010e Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/southamerica Changeset: ce3770eadf85 Author: malenkov Date: 2010-03-11 17:39 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ce3770eadf85 6707226: java.beans.Statement & java.beans.Expression miss one important usecase Reviewed-by: rupashka ! src/share/classes/java/beans/Expression.java ! src/share/classes/java/beans/Statement.java + test/java/beans/Statement/Test6707226.java Changeset: d86c053ca938 Author: rupashka Date: 2010-03-15 16:16 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d86c053ca938 6931347: SynthTabbedPaneUI.paintTabArea() is not called when tabbed pane is painted Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java Changeset: 1224c1388e86 Author: rupashka Date: 2010-03-17 12:48 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1224c1388e86 6933784: NIMBUS: ImageView getNoImageIcon and getLoadingImageIcon returns nulls instead of an icon Reviewed-by: peterz ! src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java + test/javax/swing/plaf/synth/Test6933784.java Changeset: ac4c8e3bf93f Author: lana Date: 2010-03-17 14:19 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ac4c8e3bf93f Merge - test/java/nio/file/WatchService/OverflowEventIsLoner.java Changeset: 325823a26aac Author: peterz Date: 2010-03-18 12:02 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/325823a26aac 6932524: NIMBUS: 3 constructors of JSplitPane creates new jsp with continuous layout - they should not. Reviewed-by: alexp ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/plaf/nimbus/skin.laf Changeset: ef892cd084ec Author: rupashka Date: 2010-03-24 15:14 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ef892cd084ec 6922214: SynthTextPaneUI.installUI() doesn't install the default caret and highlighter Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Changeset: f799c62ad4f8 Author: peytoia Date: 2010-03-30 18:35 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f799c62ad4f8 6939021: (tz) Support tzdata2010g Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/zone.tab ! src/share/classes/sun/util/resources/TimeZoneNames.java Changeset: dbde35ddda78 Author: peytoia Date: 2010-03-30 21:16 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/dbde35ddda78 6907881: Different undesired behavior for entering Asian characters in Windows IME starting with Java 6.0 Reviewed-by: okutsu ! src/windows/native/sun/windows/awt_Component.cpp Changeset: eb39ccbd95f9 Author: lana Date: 2010-04-08 15:00 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/eb39ccbd95f9 Merge Changeset: d23dcd3e3ce4 Author: andrew Date: 2010-03-12 01:09 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d23dcd3e3ce4 6934327: Update linux fontconfigs for Ubuntu and Fedora. Summary: Use fontconfigs suitable for recent Fedora, Ubuntu and Debian releases. Reviewed-by: prr ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties Changeset: 45bd445f6250 Author: lana Date: 2010-03-19 18:49 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/45bd445f6250 Merge - make/java/text/FILES_java.gmk - test/java/nio/file/WatchService/OverflowEventIsLoner.java Changeset: bf23bec88222 Author: lana Date: 2010-04-08 15:01 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/bf23bec88222 Merge Changeset: 47958f76babc Author: chegar Date: 2010-03-10 14:44 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/47958f76babc 6933618: java/net/MulticastSocket/NoLoopbackPackets.java fails when rerun Reviewed-by: alanb ! test/java/net/MulticastSocket/NoLoopbackPackets.java Changeset: 467484e025d6 Author: martin Date: 2010-03-10 14:53 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/467484e025d6 6931812: A better implementation of sun.nio.cs.Surrogate.isBMP(int) Summary: uc >> 16 == 0 is superior to (int) (char) uc == uc Reviewed-by: sherman Contributed-by: Ulf Zibis ! src/share/classes/sun/nio/cs/Surrogate.java Changeset: 07e1c5a90c6a Author: chegar Date: 2010-03-11 16:17 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/07e1c5a90c6a 6934054: java/net/Socket/FDClose.java return error in samevm Summary: test is no longer useful Reviewed-by: alanb ! test/ProblemList.txt - test/java/net/Socket/FDClose.java Changeset: c342735a3e58 Author: chegar Date: 2010-03-11 17:37 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c342735a3e58 6933629: java/net/HttpURLConnection/HttpResponseCode.java fails if run in samevm mode Reviewed-by: alanb ! test/ProblemList.txt ! test/java/net/CookieHandler/CookieHandlerTest.java Changeset: c6f8c58ed51a Author: chegar Date: 2010-03-11 17:50 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c6f8c58ed51a 6223635: Code hangs at connect call even when Timeout is specified when using a socks proxy Reviewed-by: michaelm, chegar Contributed-by: damjan.jov at gmail.com ! src/share/classes/java/net/SocketInputStream.java ! src/share/classes/java/net/SocksSocketImpl.java + test/java/net/Socket/SocksConnectTimeout.java Changeset: ee385b4e2ffb Author: sherman Date: 2010-03-11 14:06 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ee385b4e2ffb 6929479: Add a system property sun.zip.disableMemoryMapping to disable mmap use in ZipFile Summary: system property sun.zip.disableMemoryMapping to disable mmap use Reviewed-by: alanb ! src/share/classes/java/util/zip/ZipFile.java ! src/share/native/java/util/zip/ZipFile.c ! src/share/native/java/util/zip/zip_util.c ! src/share/native/java/util/zip/zip_util.h Changeset: bf6eb240e718 Author: ohair Date: 2010-03-12 09:03 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/bf6eb240e718 6933294: Fix some test/Makefile issues around Linux ARCH settings, better defaults Reviewed-by: jjg ! test/Makefile ! test/ProblemList.txt Changeset: cda90ceb7176 Author: ohair Date: 2010-03-12 09:06 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/cda90ceb7176 Merge ! test/ProblemList.txt Changeset: f88f6f8ddd21 Author: chegar Date: 2010-03-16 10:05 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f88f6f8ddd21 6934923: test/java/net/ipv6tests/TcpTest.java hangs on Solaris 10 Reviewed-by: alanb ! test/java/net/ipv6tests/TcpTest.java ! test/java/net/ipv6tests/Tests.java Changeset: 895a1211b2e1 Author: chegar Date: 2010-03-16 14:31 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/895a1211b2e1 6935199: java/net regression tests failing with Assertions Reviewed-by: michaelm ! test/ProblemList.txt ! test/java/net/CookieHandler/TestHttpCookie.java ! test/java/net/URLClassLoader/closetest/CloseTest.java Changeset: 0500f7306cbe Author: weijun Date: 2010-03-17 09:55 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0500f7306cbe 6868865: Test: sun/security/tools/jarsigner/oldsig.sh fails under all platforms Reviewed-by: wetmore ! test/sun/security/tools/jarsigner/oldsig.sh Changeset: 2796f839e337 Author: weijun Date: 2010-03-18 18:26 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2796f839e337 6829283: HTTP/Negotiate: Autheticator triggered again when user cancels the first one Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java ! test/sun/security/krb5/auto/HttpNegotiateServer.java Changeset: c52f292a8f86 Author: valeriep Date: 2010-03-18 17:05 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c52f292a8f86 6695485: SignedObject constructor throws ProviderException if it's called using provider "SunPKCS11-Solaris" Summary: Added checking for RSA key lengths in initSign and initVerify Reviewed-by: vinnie ! src/share/classes/sun/security/pkcs11/P11Signature.java + test/sun/security/pkcs11/Signature/TestRSAKeyLength.java Changeset: df5714cbe76d Author: valeriep Date: 2010-03-18 17:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/df5714cbe76d 6591117: Poor preformance of PKCS#11 security provider compared to Sun default provider Summary: Added internal buffering to PKCS11 SecureRandom impl Reviewed-by: wetmore ! src/share/classes/sun/security/pkcs11/P11SecureRandom.java Changeset: dc42c9d9ca16 Author: valeriep Date: 2010-03-18 17:56 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/dc42c9d9ca16 6837847: PKCS#11 A SecureRandom and a serialization error following installation of 1.5.0_18 Summary: Added a custom readObject method to PKCS11 SecureRandom impl Reviewed-by: wetmore ! src/share/classes/sun/security/pkcs11/P11SecureRandom.java + test/sun/security/pkcs11/SecureRandom/TestDeserialization.java Changeset: dff4f51b73d4 Author: lana Date: 2010-03-18 18:52 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/dff4f51b73d4 Merge Changeset: 3bb93c410f41 Author: chegar Date: 2010-03-19 13:07 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3bb93c410f41 6935233: java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java fails with modules build Reviewed-by: alanb ! test/ProblemList.txt ! test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java + test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh Changeset: c40572afb29e Author: chegar Date: 2010-03-22 11:55 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c40572afb29e 6632169: HttpClient and HttpsClient should not try to reverse lookup IP address of a proxy server Reviewed-by: michaelm ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java Changeset: 31dcf23042f9 Author: weijun Date: 2010-03-23 10:41 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/31dcf23042f9 6586707: NTLM authentication with proxy fails Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Changeset: 8a9ebdc27045 Author: chegar Date: 2010-03-23 13:54 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/8a9ebdc27045 6614957: HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets 6771432: createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented" 6766775: X509 certificate hostname checking is broken in JDK1.6.0_10 Summary: All three bugs are interdependent Reviewed-by: xuelei ! src/share/classes/javax/net/SocketFactory.java ! src/share/classes/sun/net/NetworkClient.java ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/share/classes/sun/security/ssl/SSLSocketImpl.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Changeset: f8c9a5e3f5db Author: dcubed Date: 2010-03-23 19:03 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f8c9a5e3f5db 6915365: 3/4 assert(false,"Unsupported VMGlobal Type") at management.cpp:1540 Summary: Remove exception throw to decouple JDK and HotSpot additions of known types. Reviewed-by: mchung ! src/share/native/sun/management/Flag.c Changeset: 26477628f2d5 Author: weijun Date: 2010-03-25 12:07 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/26477628f2d5 6813340: X509Factory should not depend on is.available()==0 Reviewed-by: xuelei ! src/share/classes/sun/security/provider/X509Factory.java ! src/share/classes/sun/security/tools/KeyTool.java + test/java/security/cert/CertificateFactory/ReturnStream.java + test/java/security/cert/CertificateFactory/SlowStream.java + test/java/security/cert/CertificateFactory/slowstream.sh Changeset: 6109b166bf68 Author: chegar Date: 2010-03-25 09:38 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/6109b166bf68 6937703: java/net regression test issues with samevm Reviewed-by: alanb ! test/ProblemList.txt ! test/java/net/ProxySelector/B6737819.java ! test/java/net/ResponseCache/ResponseCacheTest.java ! test/java/net/ResponseCache/getResponseCode.java ! test/java/net/URL/TestIPv6Addresses.java ! test/java/net/URLClassLoader/HttpTest.java ! test/java/net/URLConnection/B5052093.java ! test/java/net/URLConnection/contentHandler/UserContentHandler.java Changeset: 31517a0345d1 Author: xuelei Date: 2010-03-29 13:27 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/31517a0345d1 6693917: regression tests need to update for supporting ECC on solaris 11 Reviewed-by: weijun ! test/sun/security/ssl/etc/keystore ! test/sun/security/ssl/etc/truststore ! test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java Changeset: 3771ac2a8b3b Author: sherman Date: 2010-03-30 19:10 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3771ac2a8b3b 6902790: Converting/displaying HKSCs characters issue on Vista and Windows7 6911753: NSN wants to add Big5 HKSCS-2004 support Summary: support HKSCS2008 in Big5_HKSCS and MS950_HKSCS Reviewed-by: okutsu ! make/sun/nio/cs/FILES_java.gmk ! make/sun/nio/cs/Makefile + make/tools/CharsetMapping/Big5.c2b + make/tools/CharsetMapping/Big5.map + make/tools/CharsetMapping/Big5.nr + make/tools/CharsetMapping/HKSCS2001.c2b + make/tools/CharsetMapping/HKSCS2001.map + make/tools/CharsetMapping/HKSCS2008.c2b + make/tools/CharsetMapping/HKSCS2008.map + make/tools/CharsetMapping/HKSCS_XP.c2b + make/tools/CharsetMapping/HKSCS_XP.map ! make/tools/CharsetMapping/dbcs - make/tools/src/build/tools/charsetmapping/CharsetMapping.java + make/tools/src/build/tools/charsetmapping/DBCS.java + make/tools/src/build/tools/charsetmapping/EUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java + make/tools/src/build/tools/charsetmapping/HKSCS.java + make/tools/src/build/tools/charsetmapping/JIS0213.java ! make/tools/src/build/tools/charsetmapping/Main.java + make/tools/src/build/tools/charsetmapping/SBCS.java + make/tools/src/build/tools/charsetmapping/Utils.java ! src/share/classes/sun/awt/HKSCS.java ! src/share/classes/sun/io/ByteToCharBig5.java ! src/share/classes/sun/io/ByteToCharBig5_HKSCS.java ! src/share/classes/sun/io/ByteToCharBig5_Solaris.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java ! src/share/classes/sun/io/ByteToCharMS950_HKSCS.java ! src/share/classes/sun/io/CharToByteBig5.java ! src/share/classes/sun/io/CharToByteBig5_HKSCS.java ! src/share/classes/sun/io/CharToByteBig5_Solaris.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java ! src/share/classes/sun/io/CharToByteMS950_HKSCS.java - src/share/classes/sun/nio/cs/ext/Big5.java ! src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java + src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java ! src/share/classes/sun/nio/cs/ext/Big5_Solaris.java ! src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ! src/share/classes/sun/nio/cs/ext/HKSCS.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java ! src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java + src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java ! src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties ! src/solaris/native/java/lang/java_props_md.c ! src/windows/classes/sun/awt/windows/fontconfig.properties ! src/windows/native/java/lang/java_props_md.c ! test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java ! test/java/nio/charset/Charset/RegisteredCharsets.java Changeset: 1105276dbd6a Author: sherman Date: 2010-04-03 18:29 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1105276dbd6a 4947220: (process)Runtime.exec() cannot invoke applications with unicode parameters(win) Summary: to use CreateProcessW on Windowns platform Reviewed-by: martin ! src/share/native/java/lang/System.c ! src/share/native/java/lang/java_props.h ! src/solaris/native/java/lang/java_props_md.c ! src/windows/native/java/lang/ProcessImpl_md.c ! src/windows/native/java/lang/java_props_md.c ! test/java/lang/ProcessBuilder/Basic.java Changeset: d3309aae68ef Author: dl Date: 2009-10-06 12:20 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d3309aae68ef 6888149: AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR error Summary: Avoid integer overflow by using long arithmetic Reviewed-by: martin, dholmes ! src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Changeset: 08f57141c305 Author: asaha Date: 2009-11-20 14:24 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/08f57141c305 Merge - test/sun/tools/native2ascii/test2 Changeset: b1e8f41ed755 Author: chegar Date: 2009-11-23 12:40 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b1e8f41ed755 6639665: ThreadGroup finalizer allows creation of false root ThreadGroups Reviewed-by: alanb, hawtin ! src/share/classes/java/lang/ThreadGroup.java Changeset: e943f6b0b0e9 Author: alanb Date: 2009-11-25 10:02 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e943f6b0b0e9 6736390: File TOCTOU deserialization vulnerability Reviewed-by: hawtin ! src/share/classes/java/io/File.java Changeset: ff9c2f53594e Author: sherman Date: 2009-11-25 11:29 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ff9c2f53594e 6745393: Inflater/Deflater clone issue Summary: To use explicit lobk object. Reviewed-by: alanb ! src/share/classes/java/util/zip/Deflater.java ! src/share/classes/java/util/zip/Inflater.java ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/Inflater.c Changeset: d893f890b4dd Author: sherman Date: 2009-11-25 12:51 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d893f890b4dd 6904925: Changeset for 6745393 for jdk7 ssr forest was incomplete Summary: To add, commit and push back the ZStreamRef.java Reviewed-by: alanb + src/share/classes/java/util/zip/ZStreamRef.java Changeset: df3091222715 Author: mchung Date: 2009-11-25 09:09 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/df3091222715 6893947: Deserialization of RMIConnectionImpl objects should enforce stricter checks [ZDI-CAN-588] Summary: narrow the doPrivileged block to only set context ClassLoader Reviewed-by: hawtin, emcmanus ! src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Changeset: bc309e9233ce Author: mchung Date: 2009-11-25 11:19 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/bc309e9233ce Merge Changeset: 621edf6b03fc Author: mchung Date: 2009-11-25 16:02 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/621edf6b03fc Merge Changeset: 338c8775f0a3 Author: asaha Date: 2009-11-26 07:17 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/338c8775f0a3 Merge Changeset: f0b63b6d9709 Author: asaha Date: 2009-12-01 08:55 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f0b63b6d9709 Merge - test/tools/launcher/SolarisDataModel.sh - test/tools/launcher/SolarisRunpath.sh - test/tools/launcher/libraryCaller.c - test/tools/launcher/libraryCaller.h - test/tools/launcher/libraryCaller.java Changeset: 121fa73c7185 Author: michaelm Date: 2009-12-02 12:17 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/121fa73c7185 6893954: Subclasses of InetAddress may incorrectly interpret network addresses Summary: runtime type checks and deserialization check Reviewed-by: chegar, alanb, jccollet ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/InetAddress.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/NetworkInterface.java ! src/share/classes/java/net/Socket.java ! src/share/classes/sun/nio/ch/Net.java Changeset: edaa7e2efd63 Author: asaha Date: 2009-12-04 10:23 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/edaa7e2efd63 Merge - make/tools/CharsetMapping/DoubleByte-X.java - make/tools/CharsetMapping/SingleByte-X.java - src/share/classes/sun/util/CoreResourceBundleControl-XLocales.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java - test/java/util/Formatter/Basic-X.java Changeset: 3598d6eb087c Author: xuelei Date: 2009-12-07 21:16 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3598d6eb087c 6898739: TLS renegotiation issue Summary: the interim fix disables TLS/SSL renegotiation Reviewed-by: mullan, chegar, wetmore ! src/share/classes/sun/security/ssl/ClientHandshaker.java ! src/share/classes/sun/security/ssl/Handshaker.java ! src/share/classes/sun/security/ssl/SSLEngineImpl.java ! src/share/classes/sun/security/ssl/SSLSocketImpl.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Changeset: 91a4840fa9b4 Author: mullan Date: 2009-12-08 15:58 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/91a4840fa9b4 6633872: Policy/PolicyFile leak dynamic ProtectionDomains. Reviewed-by: hawtin ! src/share/classes/java/security/Policy.java ! src/share/classes/java/security/ProtectionDomain.java + src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java ! src/share/classes/sun/misc/SharedSecrets.java ! src/share/classes/sun/security/provider/PolicyFile.java Changeset: 7a60d100ffa5 Author: mullan Date: 2009-12-18 09:09 -0500 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7a60d100ffa5 6904162: Add new VeriSign root CA certificates to JRE and remove some old/unused ones Reviewed-by: asaha - test/lib/security/cacerts/VerifyCACerts.java Changeset: 3dabb7d5be98 Author: malenkov Date: 2009-12-22 17:56 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3dabb7d5be98 6904691: Java Applet Trusted Methods Chaining Privilege Escalation Vulnerability Reviewed-by: hawtin, peterz ! src/share/classes/java/beans/EventHandler.java ! src/share/classes/java/beans/Statement.java ! test/java/beans/EventHandler/Test6277246.java ! test/java/beans/EventHandler/Test6277266.java Changeset: c80b6350de63 Author: michaelm Date: 2010-01-12 12:13 +0000 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c80b6350de63 6910590: Application can modify command array, in ProcessBuilder Summary: clone array returned by List.toArray() Reviewed-by: chegar, alanb ! src/share/classes/java/lang/ProcessBuilder.java Changeset: 0667ab707c48 Author: bae Date: 2010-02-17 12:49 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0667ab707c48 6914866: Sun JRE ImagingLib arbitrary code execution vulnerability Reviewed-by: prr, hawtin ! src/share/native/sun/awt/medialib/awt_ImagingLib.c ! src/share/native/sun/awt/medialib/safe_alloc.h Changeset: 494aea51f26f Author: bae Date: 2010-02-17 13:10 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/494aea51f26f 6914823: Java AWT Library Invalid Index Vulnerability Reviewed-by: flar, hawtin ! src/share/classes/sun/awt/image/ImageRepresentation.java Changeset: 45ead4a2c48b Author: bae Date: 2010-02-17 13:32 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/45ead4a2c48b 6909597: Sun Java Runtime Environment JPEGImageReader stepX Integer Overflow Vulnerability Reviewed-by: igor ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c Changeset: 1ff19af7b735 Author: bae Date: 2010-02-19 22:30 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1ff19af7b735 6899653: Sun Java Runtime CMM readMabCurveData Buffer Overflow Vulnerability Reviewed-by: prr, hawtin ! src/share/native/sun/java2d/cmm/lcms/cmsio1.c ! src/share/native/sun/java2d/cmm/lcms/cmsxform.c Changeset: cda01c4b091c Author: ksrini Date: 2010-02-22 14:33 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/cda01c4b091c 6902299: Java JAR "unpack200" must verify input parameters Summary: Added several checks for addition of values before memory allocation Reviewed-by: asaha ! src/share/native/com/sun/java/util/jar/pack/bytes.cpp ! src/share/native/com/sun/java/util/jar/pack/unpack.cpp Changeset: 7a6b3cc68e92 Author: denis Date: 2010-02-26 03:54 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7a6b3cc68e92 6887703: Unsigned applet can retrieve the dragged information before drop action occur Reviewed-by: uta ! src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Changeset: c5c6f8fa92ae Author: denis Date: 2010-03-06 03:37 +0300 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c5c6f8fa92ae 6932659: JTreg test files were missed in push of 6887703 Reviewed-by: uta ! test/java/awt/regtesthelpers/process/ProcessCommunicator.java Changeset: 2805db6e6ff6 Author: asaha Date: 2010-03-24 14:16 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2805db6e6ff6 Merge - make/java/redist/FILES.gmk - make/java/text/FILES_java.gmk - make/sun/nio/FILES_java.gmk ! src/share/classes/java/beans/Statement.java ! src/share/classes/java/util/zip/Deflater.java - src/share/classes/javax/swing/plaf/synth/DefaultMenuLayout.java - src/share/classes/sun/awt/ComponentAccessor.java - src/share/classes/sun/awt/WindowAccessor.java - src/share/classes/sun/dyn/util/BytecodeSignature.java - src/share/classes/sun/security/provider/IdentityDatabase.java ! src/share/classes/sun/security/provider/PolicyFile.java - src/share/classes/sun/security/provider/SystemIdentity.java - src/share/classes/sun/security/provider/SystemSigner.java - src/share/classes/sun/security/x509/X500Signer.java - src/share/classes/sun/security/x509/X509Cert.java - src/share/classes/sun/swing/plaf/synth/SynthUI.java - src/share/classes/sun/tools/jar/JarVerifierStream.java - src/solaris/classes/sun/nio/ch/SctpSocketDispatcher.java ! test/java/awt/regtesthelpers/process/ProcessCommunicator.java - test/java/net/Socket/FDClose.java Changeset: 1dccfa00dc64 Author: asaha Date: 2010-03-24 17:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1dccfa00dc64 Merge ! src/share/classes/sun/security/ssl/SSLSocketImpl.java Changeset: 6ec14b5ede77 Author: asaha Date: 2010-03-25 07:12 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/6ec14b5ede77 Merge Changeset: 3ef9b3446677 Author: asaha Date: 2010-03-29 07:17 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3ef9b3446677 Merge Changeset: a9fdd143a58e Author: asaha Date: 2010-04-05 16:11 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/a9fdd143a58e Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java Changeset: 69002275e0e2 Author: chegar Date: 2010-04-06 13:47 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/69002275e0e2 6648001: Cancelling HTTP authentication causes subsequent deadlocks Reviewed-by: michaelm ! src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/java/net/Authenticator/Deadlock.java Changeset: 495ba30cf02f Author: chegar Date: 2010-04-06 15:44 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/495ba30cf02f 6921111: NullPointerException in PlainDatagramSocketImpl.socketSetOption Reviewed-by: alanb ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Changeset: 0b7f10901f30 Author: sherman Date: 2010-04-06 15:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0b7f10901f30 6717164: FilterInputStream.skip incorrectly inherits wording specifying how the InputStream.skip works Summary: restoring the javadoc Reviewed-by: alanb ! src/share/classes/java/io/FilterInputStream.java Changeset: fc7c38b2584c Author: martin Date: 2010-04-07 12:30 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fc7c38b2584c 6941130: Semaphore should throw if number of permits overflows or underflows Summary: Check if release could make number of permits negative Reviewed-by: dl, dholmes ! src/share/classes/java/util/concurrent/Semaphore.java + test/java/util/concurrent/Semaphore/PermitOverflow.java Changeset: 025f9e57566a Author: lana Date: 2010-04-08 15:34 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/025f9e57566a Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java ! src/share/classes/java/beans/Statement.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java - test/java/net/Socket/FDClose.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: 4a6abb7e224c Author: lana Date: 2010-04-13 16:41 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/4a6abb7e224c Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java - test/java/net/Socket/FDClose.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: 7f90d0b9dbb7 Author: mikejwre Date: 2010-04-15 13:55 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7f90d0b9dbb7 Added tag jdk7-b89 for changeset 4a6abb7e224c ! .hgtags Changeset: 471c3c1f18d1 Author: bae Date: 2010-04-20 11:06 +0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/471c3c1f18d1 6936389: FontManager.fileCloser may cause memory leak in applets Reviewed-by: igor, prr, ant ! src/share/classes/sun/font/SunFontManager.java ! src/share/classes/sun/java2d/Disposer.java ! src/share/classes/sun/java2d/loops/GraphicsPrimitive.java ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/motif/MToolkit.java ! src/windows/classes/sun/awt/windows/WToolkit.java ! src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java + test/sun/awt/font/ClassLoaderLeakTest.java Changeset: bd5d1afc00ab Author: lana Date: 2010-04-20 16:47 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/bd5d1afc00ab Merge Changeset: 43b8a8bc8208 Author: uta Date: 2010-04-14 15:28 +0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/43b8a8bc8208 6920842: Wheel events do not bubbling to the browser if they was not treated in applet. Reviewed-by: art, anthony, peterz ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java Changeset: ba8ecdbf0b88 Author: lana Date: 2010-04-15 15:19 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ba8ecdbf0b88 Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java - test/java/net/Socket/FDClose.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: f51dc9fc72d3 Author: lana Date: 2010-04-20 16:48 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f51dc9fc72d3 Merge Changeset: b48c141258e1 Author: peytoia Date: 2010-04-13 13:47 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b48c141258e1 6709938: RFE: Support more scripts in JDK logical fonts using new fonts in Windows XP and later. Reviewed-by: okutsu ! src/windows/classes/sun/awt/windows/fontconfig.properties Changeset: 98359a01cbe0 Author: okutsu Date: 2010-04-14 13:53 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/98359a01cbe0 6941948: NumaricShaper.shape() doesn't work with NumericShaper.Range.EASTERN_ARABIC Reviewed-by: peytoia ! src/share/classes/java/awt/font/NumericShaper.java + test/java/awt/font/NumericShaper/EasternArabicTest.java Changeset: 4d8b1b04544c Author: lana Date: 2010-04-15 11:51 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/4d8b1b04544c Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java ! src/windows/classes/sun/awt/windows/fontconfig.properties - test/java/net/Socket/FDClose.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: 17d17234a1d9 Author: okutsu Date: 2010-04-16 15:53 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/17d17234a1d9 6609675: [Fmt-Da] DateFormat.parse() on a timezone changes its calendar's timezone Reviewed-by: peytoia ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/SimpleDateFormat.java Changeset: f75f5e2274d5 Author: rupashka Date: 2010-04-16 13:05 +0400 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f75f5e2274d5 6922179: SynthTextPaneUI.installUI() doesn't set component to opaque as specified Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Changeset: 584dcb7ecaf9 Author: naoto Date: 2010-04-19 14:48 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/584dcb7ecaf9 6943941: Rebranding issues with some tests in jdk/test/java/util Reviewed-by: ohair ! test/java/util/Locale/Bug4175998Test.java ! test/java/util/ResourceBundle/Bug4083270Test.java ! test/java/util/ResourceBundle/Bug4165815Test.java ! test/java/util/ResourceBundle/Bug4168625Class.java ! test/java/util/ResourceBundle/Bug4168625Getter.java ! test/java/util/ResourceBundle/Bug4168625Resource.java ! test/java/util/ResourceBundle/Bug4168625Resource2.java ! test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java ! test/java/util/ResourceBundle/Bug4168625Resource3.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java ! test/java/util/ResourceBundle/Bug4177489Test.java ! test/java/util/ResourceBundle/Bug4177489_Resource.java ! test/java/util/ResourceBundle/Bug4177489_Resource_jf.java Changeset: 2571720800a6 Author: peytoia Date: 2010-04-20 15:01 +0900 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2571720800a6 6945238: (tz) Support tzdata2010i Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/africa ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/southamerica Changeset: 0d9662f62d0d Author: lana Date: 2010-04-20 16:50 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0d9662f62d0d Merge Changeset: 710c4493902f Author: mullan Date: 2010-04-09 07:21 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/710c4493902f 6909281: 6u19 b99(pit):Error loading first applet in browser session( both FF && IE, windows ): NPE is thrown Summary: Fix for 6633872 causes NPE due to uninitialised ProtectionDomain class Reviewed-by: andrew ! src/share/classes/sun/misc/SharedSecrets.java Changeset: 89f4ec9e4b33 Author: xuelei Date: 2010-04-10 09:13 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/89f4ec9e4b33 6941936: Broken pipe error of test case DNSIdentities.java Reviewed-by: chegar ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Changeset: 507cd94489e7 Author: sherman Date: 2010-04-12 10:57 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/507cd94489e7 6942707: nwe Big5.map for HKSCS2008 missed 5 codepoints Summary: updated the Big5.map table to add 5 entries Reviewed-by: okutsu - make/tools/CharsetMapping/Big5.c2b ! make/tools/CharsetMapping/Big5.map Changeset: 6b641c576e77 Author: valeriep Date: 2010-04-07 17:20 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/6b641c576e77 6918573: sun.security.pkcs11.P11RSACipher.finalize() is a scalability blocker Summary: Removed the finalize() methods and use PhantomReference in Session to do auto clean up. Reviewed-by: wetmore ! src/share/classes/sun/security/pkcs11/P11Cipher.java ! src/share/classes/sun/security/pkcs11/P11Digest.java ! src/share/classes/sun/security/pkcs11/P11Key.java ! src/share/classes/sun/security/pkcs11/P11Mac.java ! src/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/share/classes/sun/security/pkcs11/P11Signature.java ! src/share/classes/sun/security/pkcs11/Session.java ! src/share/classes/sun/security/pkcs11/SessionManager.java Changeset: a45217204978 Author: valeriep Date: 2010-04-12 15:53 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/a45217204978 Merge - make/tools/CharsetMapping/Big5.c2b Changeset: 1672f0212f02 Author: chegar Date: 2010-04-13 12:02 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1672f0212f02 6706251: api/java_net/NetworkInterface/index.html#misc: getDisplayName() returned non null but empty String Reviewed-by: alanb, michaelm, andrew ! src/share/classes/java/net/NetworkInterface.java Changeset: ed61accf772e Author: chegar Date: 2010-04-15 16:37 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ed61accf772e 6943219: test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java fail in linux Reviewed-by: andrew ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Changeset: c70d4266d474 Author: sherman Date: 2010-04-15 17:00 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c70d4266d474 6931676: TEST_BUG: wrong value for bugid in comments Summary: update to the correct bugid Reviewed-by: martin ! test/java/util/regex/RegExTest.java Changeset: db4fd2fdf196 Author: weijun Date: 2010-04-16 10:06 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/db4fd2fdf196 6937978: let keytool -gencert generate the chain Reviewed-by: mullan ! src/share/classes/sun/security/tools/KeyTool.java ! test/sun/security/tools/keytool/selfissued.sh Changeset: 0d989dc383d3 Author: weijun Date: 2010-04-16 10:13 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0d989dc383d3 6939248: Jarsigner can't extract Extended Key Usage from Timestamp Reply correctly Reviewed-by: xuelei, mullan ! src/share/classes/sun/security/tools/TimestampedSigner.java + test/sun/security/tools/jarsigner/TimestampCheck.java + test/sun/security/tools/jarsigner/ts.sh Changeset: c444651077d2 Author: andrew Date: 2010-04-16 09:54 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/c444651077d2 6944361: Missing CKR_ values in PKCS11Exception Summary: Allow native NSS errors to be observed and correctly reported Reviewed-by: wetmore, valeriep ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java ! src/share/classes/sun/security/x509/X509Key.java Changeset: 7ecc023957d8 Author: lana Date: 2010-04-17 08:12 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7ecc023957d8 Merge Changeset: 97fb6f6d230a Author: weijun Date: 2010-04-20 19:30 +0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/97fb6f6d230a 6944847: native gss lib names on linux Reviewed-by: valeriep ! src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java + test/sun/security/krb5/Krb5NameEquals.java + test/sun/security/krb5/runNameEquals.sh Changeset: d8ad2da3ecf3 Author: wetmore Date: 2010-04-20 14:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/d8ad2da3ecf3 6945604: wrong error message in CardImpl.java Reviewed-by: mullan ! src/share/classes/sun/security/smartcardio/CardImpl.java Changeset: 884df20e9cce Author: lana Date: 2010-04-20 16:51 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/884df20e9cce Merge - make/tools/CharsetMapping/Big5.c2b Changeset: 9bf334e32d35 Author: yhuang Date: 2010-01-21 22:05 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/9bf334e32d35 6916787: Ukrainian currency name needs to be fixed Reviewed-by: yhuang, peytoia ! src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: 00890dd53f45 Author: yhuang Date: 2010-01-27 23:19 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/00890dd53f45 6919624: minimalDaysInFirstWeek ressource for hungarian is wrong Reviewed-by: yhuang, peytoia ! src/share/classes/sun/util/resources/CalendarData_hu.properties ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: 0173ef08dcc8 Author: yhuang Date: 2010-02-11 20:59 -0800 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/0173ef08dcc8 6776102: sun/util/resources/TimeZone/Bug6317929.java test failed against 6u12b01 and passed against 6u11b03 Reviewed-by: yhuang, peytoia ! test/sun/util/resources/TimeZone/Bug6317929.java Changeset: b2485d8eba40 Author: yhuang Date: 2010-04-11 21:04 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b2485d8eba40 Merge - make/java/redist/FILES.gmk - make/java/text/FILES_java.gmk - make/sun/nio/FILES_java.gmk - src/share/classes/sun/dyn/util/BytecodeSignature.java - src/solaris/classes/sun/nio/ch/SctpSocketDispatcher.java Changeset: babd3f260d32 Author: yhuang Date: 2010-04-11 23:21 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/babd3f260d32 6875904: Java 7 message synchronization 1 Reviewed-by: ogino, faryad ! make/sun/launcher/Makefile ! src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties + src/share/classes/sun/launcher/resources/launcher_de.properties + src/share/classes/sun/launcher/resources/launcher_es.properties + src/share/classes/sun/launcher/resources/launcher_fr.properties + src/share/classes/sun/launcher/resources/launcher_it.properties + src/share/classes/sun/launcher/resources/launcher_ja.properties + src/share/classes/sun/launcher/resources/launcher_ko.properties + src/share/classes/sun/launcher/resources/launcher_sv.properties + src/share/classes/sun/launcher/resources/launcher_zh_CN.properties + src/share/classes/sun/launcher/resources/launcher_zh_TW.properties ! src/share/classes/sun/management/resources/agent_de.properties ! src/share/classes/sun/management/resources/agent_es.properties ! src/share/classes/sun/management/resources/agent_fr.properties ! src/share/classes/sun/management/resources/agent_it.properties ! src/share/classes/sun/management/resources/agent_ja.properties ! src/share/classes/sun/management/resources/agent_ko.properties ! src/share/classes/sun/management/resources/agent_sv.properties ! src/share/classes/sun/management/resources/agent_zh_CN.properties ! src/share/classes/sun/management/resources/agent_zh_TW.properties ! src/share/classes/sun/security/tools/JarSignerResources_ja.java ! src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java ! src/share/classes/sun/security/util/AuthResources_de.java ! src/share/classes/sun/security/util/AuthResources_es.java ! src/share/classes/sun/security/util/AuthResources_fr.java ! src/share/classes/sun/security/util/AuthResources_it.java ! src/share/classes/sun/security/util/AuthResources_ja.java ! src/share/classes/sun/security/util/AuthResources_ko.java ! src/share/classes/sun/security/util/AuthResources_sv.java ! src/share/classes/sun/security/util/AuthResources_zh_CN.java ! src/share/classes/sun/security/util/AuthResources_zh_TW.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java Changeset: 7794a4a38e99 Author: yhuang Date: 2010-04-20 01:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7794a4a38e99 Merge - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java - test/java/net/Socket/FDClose.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: b5ae88dd3dbd Author: mikejwre Date: 2010-04-28 20:04 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/b5ae88dd3dbd Merge Changeset: ab117ded3e3f Author: mikejwre Date: 2010-04-22 16:54 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ab117ded3e3f Added tag jdk7-b90 for changeset 7f90d0b9dbb7 ! .hgtags Changeset: 08a31cab971f Author: mikejwre Date: 2010-04-29 13:53 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/08a31cab971f Merge - make/tools/CharsetMapping/Big5.c2b Changeset: f2dce7210cc0 Author: mikejwre Date: 2010-04-29 14:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/f2dce7210cc0 Added tag jdk7-b91 for changeset 08a31cab971f ! .hgtags Changeset: fa09af0e5b7c Author: mikejwre Date: 2010-05-06 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fa09af0e5b7c Added tag jdk7-b92 for changeset f2dce7210cc0 ! .hgtags Changeset: fba6b00a9233 Author: mchung Date: 2010-05-13 09:20 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fba6b00a9233 Merge ! .hgtags ! make/common/Modules.gmk ! make/common/shared/Sanity.gmk ! make/modules/tools/Makefile - make/tools/src/build/tools/charsetmapping/CharsetMapping.java - make/tools/src/build/tools/charsetmapping/GenerateDBCS.java - make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java - make/tools/src/build/tools/charsetmapping/GenerateMapping.java - make/tools/src/build/tools/charsetmapping/GenerateSBCS.java ! src/share/classes/java/io/File.java - src/share/classes/sun/io/ByteToCharHKSCS.java - src/share/classes/sun/io/ByteToCharHKSCS_2001.java - src/share/classes/sun/io/CharToByteHKSCS.java - src/share/classes/sun/io/CharToByteHKSCS_2001.java ! src/share/classes/sun/misc/SharedSecrets.java - src/share/classes/sun/nio/cs/ext/Big5.java - src/share/classes/sun/nio/cs/ext/HKSCS_2001.java ! src/share/native/java/lang/System.c - test/java/net/Socket/FDClose.java - test/java/nio/file/WatchService/OverflowEventIsLoner.java - test/lib/security/cacerts/VerifyCACerts.java Changeset: 2f69ce2c9bf7 Author: mchung Date: 2010-05-13 18:26 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/2f69ce2c9bf7 Merge ! src/share/native/java/lang/System.c From jonathan.gibbons at oracle.com Fri May 14 16:50:08 2010 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Fri, 14 May 2010 23:50:08 +0000 Subject: hg: jigsaw/jigsaw/langtools: javac: improve handling of exceptions from Jigsaw module resolver Message-ID: <20100514235013.D5F6744974@hg.openjdk.java.net> Changeset: 57672110902d Author: jjg Date: 2010-05-14 16:49 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/57672110902d javac: improve handling of exceptions from Jigsaw module resolver ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Modules.java ! src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/javax/lang/model/util/ModuleResolver.java ! test/tools/javac/modules/ModuleResolverTest05.java From jonathan.gibbons at oracle.com Mon May 17 18:26:26 2010 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Tue, 18 May 2010 01:26:26 +0000 Subject: hg: jigsaw/jigsaw/langtools: javac: remove debug print; fix broken tests Message-ID: <20100518012631.809F644F0B@hg.openjdk.java.net> Changeset: 432451f1892f Author: jjg Date: 2010-05-17 18:24 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/432451f1892f javac: remove debug print; fix broken tests ! src/share/classes/com/sun/tools/javac/file/Paths.java ! test/tools/javac/T6873845.java ! test/tools/javac/proprietary/Test.java From dalibor.topic at sun.com Tue May 18 05:55:42 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Tue, 18 May 2010 12:55:42 +0000 Subject: hg: jigsaw/jigsaw/jdk: (jpkg) Added checks for module path argument Message-ID: <20100518125613.3165A44FDA@hg.openjdk.java.net> Changeset: bed850620f95 Author: robilad Date: 2010-05-18 14:44 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/bed850620f95 (jpkg) Added checks for module path argument ! src/share/classes/org/openjdk/jigsaw/cli/Packager.java ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java From dalibor.topic at sun.com Tue May 18 06:55:31 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Tue, 18 May 2010 13:55:31 +0000 Subject: hg: jigsaw/jigsaw/jdk: (jpkg) Allow absolute resource paths Message-ID: <20100518135552.DB31C44FE6@hg.openjdk.java.net> Changeset: 48c8ace4e18d Author: robilad Date: 2010-05-18 15:51 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/48c8ace4e18d (jpkg) Allow absolute resource paths ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java From Dalibor.Topic at Sun.COM Tue May 18 07:00:36 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Tue, 18 May 2010 16:00:36 +0200 Subject: make jpkg resource path absolute In-Reply-To: <4BDB3D18.9000709@oracle.com> References: <20100430202517.533E33AD@eggemoggin.niobe.net> <4BDB3D18.9000709@oracle.com> Message-ID: <4BF29D84.1060801@sun.com> Akhil Arora wrote: > An absolute path passed to -r is not accepted at all - jpkg insists on > being given a relative path for -r. Fixed by http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/48c8ace4e18d cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From dalibor.topic at sun.com Tue May 18 08:18:08 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Tue, 18 May 2010 15:18:08 +0000 Subject: hg: jigsaw/jigsaw/jdk: (jmod) (extract) Clean up temp files upon exception Message-ID: <20100518151837.3EC1444FFE@hg.openjdk.java.net> Changeset: 7c1218ffcf8d Author: robilad Date: 2010-05-18 17:14 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7c1218ffcf8d (jmod) (extract) Clean up temp files upon exception ! src/share/classes/org/openjdk/jigsaw/cli/Librarian.java From jonathan.gibbons at oracle.com Tue May 18 16:29:09 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 18 May 2010 16:29:09 -0700 Subject: jpkg exception Message-ID: <4BF322C5.2000102@oracle.com> I tried "jpkg --help". The output was unexpected. -- Jon > > usage: jpkg [-v] [-L ] [-r ] [-i ] > [-m ] [-d ] [-c ] [-n ] [-e > ] [-s ] [-l ] [-x > ] [deb|jmod] > > Exception in thread "main" java.lang.InternalError: > java.io.IOException: Stream closed > at > java.text.BreakIterator.createBreakInstance(BreakIterator.java:620) > at > java.text.BreakIterator.getBreakInstance(BreakIterator.java:565) > at java.text.BreakIterator.getLineInstance(BreakIterator.java:492) > at > org.openjdk.internal.joptsimple.internal.Column.addCells(Column.java:93) > at > org.openjdk.internal.joptsimple.internal.ColumnarData.addRowCells(ColumnarData.java:173) > at > org.openjdk.internal.joptsimple.internal.ColumnarData.addRow(ColumnarData.java:101) > at > org.openjdk.internal.joptsimple.HelpFormatter.addHelpLineFor(HelpFormatter.java:105) > at > org.openjdk.internal.joptsimple.HelpFormatter.visit(HelpFormatter.java:111) > at > org.openjdk.internal.joptsimple.NoArgumentOptionSpec.accept(NoArgumentOptionSpec.java:93) > at > org.openjdk.internal.joptsimple.HelpFormatter.format(HelpFormatter.java:99) > at > org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:397) > at > org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:382) > at org.openjdk.jigsaw.cli.Packager.usage(Packager.java:618) > at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:764) > at org.openjdk.jigsaw.cli.Packager.run(Packager.java:628) > at org.openjdk.jigsaw.cli.Packager.main(Packager.java:906) > Caused by: java.io.IOException: Stream closed > at > java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:151) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) > at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) > at java.io.BufferedInputStream.read(BufferedInputStream.java:334) > at java.io.FilterInputStream.read(FilterInputStream.java:107) > at > java.text.RuleBasedBreakIterator.readFile(RuleBasedBreakIterator.java:464) > at > java.text.RuleBasedBreakIterator.readTables(RuleBasedBreakIterator.java:378) > at > java.text.RuleBasedBreakIterator.(RuleBasedBreakIterator.java:324) > at > java.text.BreakIterator.createBreakInstance(BreakIterator.java:608) > ... 15 more From mandy.chung at oracle.com Tue May 18 16:57:18 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 18 May 2010 16:57:18 -0700 Subject: jpkg exception In-Reply-To: <4BF322C5.2000102@oracle.com> References: <4BF322C5.2000102@oracle.com> Message-ID: <4BF3295E.8060103@oracle.com> jpkg running in module mode fails to find the sun/text/resources/LineBreakIteratorData resource file. This error involves two bugs (in fact not yet supported) that I have fixed in my repository: 1. jdk.base is missing its optional dependences (sun.resources and sun.charsets) 2. the optional module, if exists, is not linked I'll send out the webrev soon. Thanks Mandy On 05/18/10 16:29, Jonathan Gibbons wrote: > I tried "jpkg --help". The output was unexpected. > > -- Jon > >> >> usage: jpkg [-v] [-L ] [-r ] [-i >> ] [-m ] [-d ] [-c ] >> [-n ] [-e ] [-s ] [-l > description>] [-x ] [deb|jmod] >> >> Exception in thread "main" java.lang.InternalError: >> java.io.IOException: Stream closed >> at >> java.text.BreakIterator.createBreakInstance(BreakIterator.java:620) >> at >> java.text.BreakIterator.getBreakInstance(BreakIterator.java:565) >> at >> java.text.BreakIterator.getLineInstance(BreakIterator.java:492) >> at >> org.openjdk.internal.joptsimple.internal.Column.addCells(Column.java:93) >> at >> org.openjdk.internal.joptsimple.internal.ColumnarData.addRowCells(ColumnarData.java:173) >> >> at >> org.openjdk.internal.joptsimple.internal.ColumnarData.addRow(ColumnarData.java:101) >> >> at >> org.openjdk.internal.joptsimple.HelpFormatter.addHelpLineFor(HelpFormatter.java:105) >> >> at >> org.openjdk.internal.joptsimple.HelpFormatter.visit(HelpFormatter.java:111) >> >> at >> org.openjdk.internal.joptsimple.NoArgumentOptionSpec.accept(NoArgumentOptionSpec.java:93) >> >> at >> org.openjdk.internal.joptsimple.HelpFormatter.format(HelpFormatter.java:99) >> >> at >> org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:397) >> >> at >> org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:382) >> >> at org.openjdk.jigsaw.cli.Packager.usage(Packager.java:618) >> at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:764) >> at org.openjdk.jigsaw.cli.Packager.run(Packager.java:628) >> at org.openjdk.jigsaw.cli.Packager.main(Packager.java:906) >> Caused by: java.io.IOException: Stream closed >> at >> java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:151) >> at >> java.io.BufferedInputStream.fill(BufferedInputStream.java:235) >> at >> java.io.BufferedInputStream.read1(BufferedInputStream.java:275) >> at >> java.io.BufferedInputStream.read(BufferedInputStream.java:334) >> at java.io.FilterInputStream.read(FilterInputStream.java:107) >> at >> java.text.RuleBasedBreakIterator.readFile(RuleBasedBreakIterator.java:464) >> >> at >> java.text.RuleBasedBreakIterator.readTables(RuleBasedBreakIterator.java:378) >> >> at >> java.text.RuleBasedBreakIterator.(RuleBasedBreakIterator.java:324) >> at >> java.text.BreakIterator.createBreakInstance(BreakIterator.java:608) >> ... 15 more > From mandy.chung at oracle.com Tue May 18 17:02:12 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 18 May 2010 17:02:12 -0700 Subject: jpkg exception In-Reply-To: <4BF3295E.8060103@oracle.com> References: <4BF322C5.2000102@oracle.com> <4BF3295E.8060103@oracle.com> Message-ID: <4BF32A84.5090707@oracle.com> BTW, the workaround is to run jpkg in legacy mode: jpkg -J-Xmode:legacy --help Mandy On 05/18/10 16:57, Mandy Chung wrote: > jpkg running in module mode fails to find the > sun/text/resources/LineBreakIteratorData resource file. This error > involves two bugs (in fact not yet supported) that I have fixed in my > repository: > > 1. jdk.base is missing its optional dependences (sun.resources and > sun.charsets) > 2. the optional module, if exists, is not linked > > I'll send out the webrev soon. > > Thanks > Mandy > > On 05/18/10 16:29, Jonathan Gibbons wrote: >> I tried "jpkg --help". The output was unexpected. >> >> -- Jon >> >>> >>> usage: jpkg [-v] [-L ] [-r ] [-i >>> ] [-m ] [-d ] [-c ] >>> [-n ] [-e ] [-s ] [-l >> description>] [-x ] [deb|jmod] >>> >>> Exception in thread "main" java.lang.InternalError: >>> java.io.IOException: Stream closed >>> at >>> java.text.BreakIterator.createBreakInstance(BreakIterator.java:620) >>> at >>> java.text.BreakIterator.getBreakInstance(BreakIterator.java:565) >>> at >>> java.text.BreakIterator.getLineInstance(BreakIterator.java:492) >>> at >>> org.openjdk.internal.joptsimple.internal.Column.addCells(Column.java:93) >>> >>> at >>> org.openjdk.internal.joptsimple.internal.ColumnarData.addRowCells(ColumnarData.java:173) >>> >>> at >>> org.openjdk.internal.joptsimple.internal.ColumnarData.addRow(ColumnarData.java:101) >>> >>> at >>> org.openjdk.internal.joptsimple.HelpFormatter.addHelpLineFor(HelpFormatter.java:105) >>> >>> at >>> org.openjdk.internal.joptsimple.HelpFormatter.visit(HelpFormatter.java:111) >>> >>> at >>> org.openjdk.internal.joptsimple.NoArgumentOptionSpec.accept(NoArgumentOptionSpec.java:93) >>> >>> at >>> org.openjdk.internal.joptsimple.HelpFormatter.format(HelpFormatter.java:99) >>> >>> at >>> org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:397) >>> >>> at >>> org.openjdk.internal.joptsimple.OptionParser.printHelpOn(OptionParser.java:382) >>> >>> at org.openjdk.jigsaw.cli.Packager.usage(Packager.java:618) >>> at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:764) >>> at org.openjdk.jigsaw.cli.Packager.run(Packager.java:628) >>> at org.openjdk.jigsaw.cli.Packager.main(Packager.java:906) >>> Caused by: java.io.IOException: Stream closed >>> at >>> java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:151) >>> at >>> java.io.BufferedInputStream.fill(BufferedInputStream.java:235) >>> at >>> java.io.BufferedInputStream.read1(BufferedInputStream.java:275) >>> at >>> java.io.BufferedInputStream.read(BufferedInputStream.java:334) >>> at java.io.FilterInputStream.read(FilterInputStream.java:107) >>> at >>> java.text.RuleBasedBreakIterator.readFile(RuleBasedBreakIterator.java:464) >>> >>> at >>> java.text.RuleBasedBreakIterator.readTables(RuleBasedBreakIterator.java:378) >>> >>> at >>> java.text.RuleBasedBreakIterator.(RuleBasedBreakIterator.java:324) >>> >>> at >>> java.text.BreakIterator.createBreakInstance(BreakIterator.java:608) >>> ... 15 more >> > From mandy.chung at oracle.com Tue May 18 22:37:05 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 18 May 2010 22:37:05 -0700 Subject: Review of platform modules & class analyzer change Message-ID: <4BF37901.8000306@oracle.com> Webrev at: http://cr.openjdk.java.net/~mchung/jigsaw/platform-modules Summary of Changes: 1. All module names are qualified names with "jdk.*" or "sun.*" prefix. 2. Class analyzer to generate requires optional in module-info.java 3. Take make/docs/NON_CORE_PKGS.gmk to prepare for the analysis of public non-platform supported APIs. 4. Fix Resolver to link with optional modules if exist 5. Move make/modules/tools to make/tools/classanlyzer so it will be built once. Thanks Mandy ------------ Below provides the high-level information about the platform modules. The names of the platform modules are qualifed names with "jdk." or "sun." as the prefix. The "sun.*" modules contain the implementation and only permit the jdk modules to access. If a sun.* module contains public supported API, there is a corresponding jdk.* module to reexport the APIs. There are generally two kinds of sun.* modules: 1. a module containing the implementation e.g. sun.tools.jaxws is the implementation for the jaxws tools 2. a module is locally connected with another module due to split packages. e.g. jdk.boot and sun.sunec [For now, the modules containing classes from rt.jar are locally connected with jdk.boot so that they are loaded by BootLoader. This is temporary until we replace with the correct way to determine if a context is a platform context.] There are three kinds of "jdk.*" modules: 1. A module contains the public supported APIs or reexports from its sun.* module as described above. Application's module-info.java can require "jdk.*" modules (except jdk.boot) but not "sun.*". 2. A jdk tool e.g. jdk.javac, jdk.javadoc, jdk.jps etc There is one module for each jdk tool whose module name is jdk. until we support module with multiple entry points. 3. Aggregator e.g. "jdk", "jdk.jre", "jdk.langtools", etc These modules are empty and they declare a list of required modules so that one can install for example the full jdk in one single jmod install command. Long-term: I expect that there will be modules for the platform APIs (e.g. with "java." prefix) and "jdk."* modules will provide the implementation. I generate a few simplified graphs to show the current jdk dependencies: - dependences to jdk.boot and jdk.base are not shown - only show jdk.* modules unless the sun.* module doesn't have a corresponding jdk.* module http://cr.openjdk.java.net/~mchung/jigsaw/graphs/ modules.png - shows the entire jdk (minus the legacy and deprecated modules) jre.png - shows the dependences of the jdk.jre module tools.png - shows all jdk tools cli.tools.png and gui.tools.png - separate CLI and GUI tools langtools.png - show langtools From Dalibor.Topic at Sun.COM Wed May 19 04:35:47 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Wed, 19 May 2010 13:35:47 +0200 Subject: jpkg exception In-Reply-To: <4BF3295E.8060103@oracle.com> References: <4BF322C5.2000102@oracle.com> <4BF3295E.8060103@oracle.com> Message-ID: <4BF3CD13.5020200@sun.com> Mandy Chung wrote: > jpkg running in module mode fails to find the > sun/text/resources/LineBreakIteratorData resource file. This error > involves two bugs (in fact not yet supported) that I have fixed in my > repository: > > 1. jdk.base is missing its optional dependences (sun.resources and > sun.charsets) > 2. the optional module, if exists, is not linked > > I'll send out the webrev soon. > Thanks for figuring this one out! cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From Alan.Bateman at oracle.com Wed May 19 05:03:04 2010 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Wed, 19 May 2010 13:03:04 +0100 Subject: Please review fix to StackOverflowError in jigsaw tracing In-Reply-To: <4BE9BE7B.4030809@oracle.com> References: <4BE9BE7B.4030809@oracle.com> Message-ID: <4BF3D378.1000707@oracle.com> Mandy Chung wrote: > I have a fix for: > 6951456: jigsaw JIGSAW_TRACE=3 stack overflow due to recursion > > Trace may be called while the classes for tracing (e.g. > java.util.Formatter) > are being loaded. One solution is to cache the traces to avoid recursion > until the very first call completes. > > Webrev at: > http://cr.openjdk.java.net/~mchung/6951456/webrev.00/ > > Thanks > Mandy I didn't see any replies to this so I've looked at the webrev. I realize tracing isn't critical but it looks like there is potential to buffer messages that will never be printed. Say thread A observes that we are initializing just before thread B sets the inited flag. Maybe the simplest is to replace "calls" with an initializing flag that is only accessed when holding a lock. That would ensure that you can't buffer a trace message after the buffered messages have been flushed. Minor comment but would two Lists be a more appropriate collection for the buffered messages? Also when calling Cache.trace when maybe you could do this: sb.append(fmt); sb.append("%n"); Cache.trace(sb.toString(), args); -Alan. From Alan.Bateman at oracle.com Wed May 19 05:13:07 2010 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Wed, 19 May 2010 13:13:07 +0100 Subject: javac: error: Cannot resolve module dependencies using Jigsaw module resolver Message-ID: <4BF3D5D3.4070906@oracle.com> Jon - I've been using the updated javac and it works very well except for the diagnostics. When attempting to compile a module and a dependency that cannot be resolved then the output isn't very informative. I find that I need to set JIGSAW_TRACE to reveal the problem. I realize this is an issue with jmod install too, but I thought I should point it out as an area that probably needs works. -Alan. From jonathan.gibbons at oracle.com Wed May 19 07:34:45 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 19 May 2010 07:34:45 -0700 Subject: javac: error: Cannot resolve module dependencies using Jigsaw module resolver In-Reply-To: <4BF3D5D3.4070906@oracle.com> References: <4BF3D5D3.4070906@oracle.com> Message-ID: <4BF3F705.5020100@oracle.com> On 05/19/2010 05:13 AM, Alan Bateman wrote: > Jon - I've been using the updated javac and it works very well except > for the diagnostics. When attempting to compile a module and a > dependency that cannot be resolved then the output isn't very > informative. I find that I need to set JIGSAW_TRACE to reveal the > problem. I realize this is an issue with jmod install too, but I > thought I should point it out as an area that probably needs works. > > -Alan. Alan, Thanks, yes, I am aware of the shortcomings of the diagnostics when javac fails to resolve module dependencies. Currently, javac is just forwarding, as best it can, the information it is receiving from the Jigsaw module resolver. Currently, the error reporting channel consists of two possible exceptions (error, and IO error) each of which just has a simple detail message for additional detail. Any improvements need to come from within the Jigsaw module resolver. It would help to have more detailed exceptions, that provide more information about the error that has detected -- such as the nature of the error and the modules or parts of the modules in question. The hardest part for javac is going to be linking it back to source code for those modules in question that were provided in source. The modules being analyzed by the module resolver have no direct link back to any source code; however, some time ago, Mark and I briefly discussed a way of identifying abstract positions within the module info file that javac could potentially map back into source positions. But, any improvements would have to be part of a bigger campaign to improve the error reporting from the Jigsaw module resolver. -- Jon From jonathan.gibbons at oracle.com Wed May 19 11:27:37 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 19 May 2010 11:27:37 -0700 Subject: jmod --dump-config RFE Message-ID: <4BF42D99.3080107@oracle.com> jmod --dump-config seems to dump out classes in a random (hash table?) order. It would be somewhat more user friendly if the classes were in a well-defined order, with "sorted alphabetically" being a leading contender. -- Jon From mandy.chung at oracle.com Wed May 19 11:29:07 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Wed, 19 May 2010 11:29:07 -0700 Subject: Please review fix to StackOverflowError in jigsaw tracing In-Reply-To: <4BF3D378.1000707@oracle.com> References: <4BE9BE7B.4030809@oracle.com> <4BF3D378.1000707@oracle.com> Message-ID: <4BF42DF3.5000206@oracle.com> On 05/19/10 05:03, Alan Bateman wrote: > Mandy Chung wrote: >> I have a fix for: >> 6951456: jigsaw JIGSAW_TRACE=3 stack overflow due to recursion >> >> Trace may be called while the classes for tracing (e.g. >> java.util.Formatter) >> are being loaded. One solution is to cache the traces to avoid recursion >> until the very first call completes. >> >> Webrev at: >> http://cr.openjdk.java.net/~mchung/6951456/webrev.00/ >> >> Thanks >> Mandy > I didn't see any replies to this so I've looked at the webrev. Thanks for the comment. I revise the fix: http://cr.openjdk.java.net/~mchung/6951456/webrev.01/ > > I realize tracing isn't critical but it looks like there is potential > to buffer messages that will never be printed. Say thread A observes > that we are initializing just before thread B sets the inited flag. > Maybe the simplest is to replace "calls" with an initializing flag > that is only accessed when holding a lock. That would ensure that you > can't buffer a trace message after the buffered messages have been > flushed. > I remove the inited and calls variable and have the methods in the Cache class to do the synchronization. > Minor comment but would two Lists be a more appropriate collection for > the buffered messages? Also when calling Cache.trace when maybe you > could do this: > > sb.append(fmt); > sb.append("%n"); > Cache.trace(sb.toString(), args); > Thanks Mandy From jonathan.gibbons at oracle.com Wed May 19 15:32:11 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 19 May 2010 15:32:11 -0700 Subject: jmod dump-class Message-ID: <4BF466EB.9030801@oracle.com> Is it possible to get the module-info file for a module from a module library? I was expecting to be able to use "jmod dump-class ..." with a class name of "module-info" but that does not appeat to work. -- Jon From jonathan.gibbons at oracle.com Wed May 19 15:45:56 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 19 May 2010 15:45:56 -0700 Subject: jpkg exception Message-ID: <4BF46A24.9040405@oracle.com> jpkg should not throw an exception if it is given an empty directory as one of its arguments. In a scenario such as Ant, it is too hard to make the use of an option dependent on whether a directory is empty or not. -- Jon [exec] java.io.IOException: Path is empty: /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/resources [exec] at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:233) [exec] at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:178) [exec] at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:112) [exec] at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:172) [exec] at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:147) [exec] at org.openjdk.jigsaw.cli.Command.run(Command.java:97) [exec] at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:835) [exec] at org.openjdk.jigsaw.cli.Packager.run(Packager.java:628) [exec] at org.openjdk.jigsaw.cli.Packager.main(Packager.java:906) [exec] I/O error: Path is empty: /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/resources [exec] Result: 1 From dalibor.topic at sun.com Thu May 20 04:29:48 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Thu, 20 May 2010 11:29:48 +0000 Subject: hg: jigsaw/jigsaw/jdk: (jpkg) Proceed if given an empty directory as argument Message-ID: <20100520113018.23B4C4438C@hg.openjdk.java.net> Changeset: fbc1dd5878b3 Author: robilad Date: 2010-05-20 13:25 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fbc1dd5878b3 (jpkg) Proceed if given an empty directory as argument ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java ! test/org/openjdk/jigsaw/cli/JpkgArgsTest.java From Dalibor.Topic at Sun.COM Thu May 20 04:35:27 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Thu, 20 May 2010 13:35:27 +0200 Subject: jpkg exception In-Reply-To: <4BF46A24.9040405@oracle.com> References: <4BF46A24.9040405@oracle.com> Message-ID: <4BF51E7F.4000803@sun.com> Jonathan Gibbons wrote: > jpkg should not throw an exception if it is given an empty directory as > one of its arguments. Thanks Jonathan, fixed with http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fbc1dd5878b3 cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From dalibor.topic at sun.com Thu May 20 06:30:53 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Thu, 20 May 2010 13:30:53 +0000 Subject: hg: jigsaw/jigsaw/jdk: (jmod) (extract) Don't use temp dir Message-ID: <20100520133106.1CEF344392@hg.openjdk.java.net> Changeset: 8b529ebbda7a Author: robilad Date: 2010-05-20 15:26 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/8b529ebbda7a (jmod) (extract) Don't use temp dir ! src/share/classes/org/openjdk/jigsaw/cli/Librarian.java From mandy.chung at oracle.com Thu May 20 12:40:29 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 20 May 2010 12:40:29 -0700 Subject: Issue with detecting if it's a platform context Message-ID: <4BF5902D.2020907@oracle.com> Mark, I made a couple of minor changes in jigsaw for the reorg of the platform modules [1]. This webrev includes all org.openjdk.jigsaw.* class changes separating from the classanalyzer and modules.config change. http://cr.openjdk.java.net/~mchung/jigsaw/platform-modules/jigsaw/ Two problems: 1. All jdk modules now have the "jdk." and "sun." prefix. Only some of them need to be loaded by the BootLoader (i.e. classes from rt.jar and those are connected with the jdk.boot module (i.e. requires local jdk.boot). The Platform.isPlatformModuleName method currently uses the prefix of the module names to determine if it's a platform module and the platform modules will be loaded by BootLoader. For example, jdk.jps is a tool that requires jdk.base and jdk.jvmstat and jdk.jps and jdk.jvmstat modules can be loaded by the module loader. This check should be revised. In theory, it should be okay to continue using BootLoader to load all jdk.* modules. This uncovers a problem with the current temporary solution that the BootLoader delegates to the VM built-in loader to loader classes. The VM has an optimization to load a class directly in the VM (skipping calling out to Java) if the initiating class loader is null. When a class sun.tools.jps.Jps in the jdk.jps module is loaded by the null loader , sun.tools.jps.Jps requests to resolve a class in jdk.jvmstat and thus the VM attempts to load the jvmstat class directly using the null loader. Since jdk.jvmstat and jdk.jps are in two different contexts and jdk.jvmstat module is not loaded yet, the VM fails to find the jvmstat class. I added a Platform.isBootContext method and the LoaderPool will create a BootLoader only if it's a boot context (yet another temporary solution). Since this is evolving, we will implement the long-term solution for the detection if it's a platform context and loading of platform modules. I leave the isPlatformContext as it is as you probably have made some change in the config/context. Does this approach sound reasonable (BootLoader only loads modules that strongly connected with jdk.boot)? 2. The optional modules are not linked and recorded in the config. The fix is to skip the optional modules in the Resolver only if it doesn't exist. Thanks Mandy [1] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000944.html From jonathan.gibbons at oracle.com Thu May 20 15:26:43 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 20 May 2010 15:26:43 -0700 Subject: jmod: RFE: incremental update Message-ID: <4BF5B723.3000306@oracle.com> It would be nice to have a way to update a module in a library "if necessary". For example, if I run jmod install HelloWorld.jmod jmod install HelloWorld.jmod then it would be nice if the second occurrence was as close to a no-op as possible. This mode of operation will be somewhat expected if and when we wrap jmod in an Ant task: in Ant, it is generally the task's responsibility to optimize away and redundant operations. However, if we decide (for whatever reason) not to add that behavior into jmod, there is no way we can simulate the behavior externally. There does not currently appear to be a way to query jmod to ask "is this module file up to date?". Thus, at the end of a build, the only way to ensure a library is up to date is to re-install all the modules, every time. Note the same is /not/ true of jpkg, since the output of jpkg is a single file, and so it is possible to compare the time stamp of that file against the time stamps of any input files. Thus, although it is somewhat clumsy, you can use the Ant task to determine whether you need to run jpkg or not. (I hope that in time we will wrap jpkg in an Ant task, and render the need for an explicit use of unnecessary.) This sort of feature is going to become increasingly important as developers get to play with jigsaw-jdk, and expect fast incremental build times. -- Jon From jonathan.gibbons at oracle.com Thu May 20 15:50:47 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 20 May 2010 15:50:47 -0700 Subject: jmod --verbose Message-ID: <4BF5BCC7.9080100@oracle.com> "jmod --verbose" seems to be as quiet as the proverbial grave. > $ > /w/jjg/work/jigsaw/jigsaw.ref/build/linux-amd64/jdk-module-image/bin/jmod > create --verbose -L /tmp/xyz > $ -- Jon From vincent.x.ryan at oracle.com Thu May 20 16:05:53 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Fri, 21 May 2010 00:05:53 +0100 Subject: jpkg enhancements to create signed modules In-Reply-To: <4BE838B9.6020902@oracle.com> References: <4BE838B9.6020902@oracle.com> Message-ID: <4BF5C051.4060002@oracle.com> Thanks for all your comments so far. The only one I have not yet addressed is Mandy's issue regarding L10N of the password prompt. The new webrev is available at: http://cr.openjdk.java.net/~vinnie/6951048/webrev.01/webrev/ I've made the default behaviour not to sign (replacing --nosign with --sign) and enhanced the ModuleFileFormat.Reader class to handle signed modules. Signature validation is quite basic at the moment. I will add support for full certificate path validation in a later changeset. On 10/05/2010 17:47, Vincent Ryan wrote: > Hello, > > Please review these code changes to support the creation of signed modules: > > http://cr.openjdk.java.net/~vinnie/6951048/webrev.00/webrev/ > > It adds the following new options to the jpkg tool: > > -S, --signer : module signer's identifier > -k, --keystore : module signer's keystore location > -t, --storetype : module signer's keystore type > --nosign : do not sign the module > --nopassword : do not prompt for a keystore password > > Appropriate default values are supported and keystore passwords may be > supplied to jpkg by redirecting standard input. > > > This is just one of a number of changes to support signed modules throughout > jigsaw. > > Please send me your comments as I'm hoping to address any issues and integrate > these changes by the end of this week. > > Thanks. From jonathan.gibbons at oracle.com Thu May 20 17:50:35 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 20 May 2010 17:50:35 -0700 Subject: Woohoo! langtools becoming module aware Message-ID: <4BF5D8DB.4060308@oracle.com> Other projects get flashy demos, showing nifty new GUI features, or nifty new language features. Here's what passes for a nifty demo in the world of langtools on Jigsaw. One of the consequences of eliminating "jar hell" with Jigsaw is that the correspondingly nifty use-with-great-caution -Xbootclasspath option has gone away. This affects how JDK developers can quickly build and test changes to a project without building the whole project. Previously, you could just build your new classes, put them on the bootclasspath and there you were, ready to go. The replacement for -Xbootclasspath is Jigsaw's new -L option. Various JDK commands, including the java command, take a -L option, to specify the location of the module library to be used. The library that you specify needn't be a complete library -- it can contain just a few modules, and point to a parent library for the rest. So that provides the basis for being able to change a part of the system without rebuilding the whole. So check out what's new for when you build the langtools repository in a Jigsaw forest. There's a new target "build-module-library", and here's an extract from the output of Ant showing a langtools module library being built. The exact output doesn't matter so much as that it shows a module library being built containing modules for javac and javadoc. (I haven't added the rules for the rest of the tools yet.) Also note I'm having to exec the jpkg and jmod utilities, since they don't have corresponding Ant tasks yet. > check-module-javac-uptodate: > > -def-build-module: > > build-module-javac: > [mkdir] Created dir: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/classes > [copy] Copying 1 file to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/classes > [copy] Copying 701 files to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/classes > [mkdir] Created dir: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/resources > [copy] Copying 1 file to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javac/resources > [mkdir] Created dir: /w/jjg/work/jigsaw/jigsaw.lt/dist/lib > [exec] Creating module file javac at 7-ea.jmod for javac > > build-classes-javadoc: > [pcompile] Generating 3 resource files to > /w/jjg/work/jigsaw/jigsaw.lt/build/gensrc > [javac] Compiling 72 source files to > /w/jjg/work/jigsaw/jigsaw.lt/build/classes > > build-classes-doclets: > [pcompile] Generating 6 resource files to > /w/jjg/work/jigsaw/jigsaw.lt/build/gensrc > [javac] Compiling 131 source files to > /w/jjg/work/jigsaw/jigsaw.lt/build/classes > [copy] Copying 2 files to /w/jjg/work/jigsaw/jigsaw.lt/build/classes > > check-module-javadoc-uptodate: > > build-module-javadoc: > [mkdir] Created dir: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javadoc/classes > [copy] Copying 1 file to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javadoc/classes > [copy] Copying 235 files to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javadoc/classes > [mkdir] Created dir: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javadoc/resources > [copy] Copying 2 files to > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/javadoc/resources > [exec] Creating module file javadoc at 7-ea.jmod for javadoc > > check-module-library-uptodate: > > -def-jmod: > > build-module-library: > [echo] jmod create -L > /w/jjg/work/jigsaw/jigsaw.lt/dist/lib/modules ... > [echo] jmod install -L > /w/jjg/work/jigsaw/jigsaw.lt/dist/lib/modules ... > > BUILD SUCCESSFUL > Total time: 42 seconds And, if you're still reading this, here's the demo: > $ ../jigsaw.ref/build/linux-amd64/jre-module-image/bin/java -L > dist/lib/modules -m javac -XDshowClass -version > javac 1.7.0-internal > javac: show class: com.sun.tools.javac.Main > > file:/w/jjg/work/jigsaw/jigsaw.lt/dist/lib/modules/javac/7-ea/classes/com/sun/tools/javac/Main.class > MD5 checksum: a82df5c829d770b21eb4f3d8b6291423 Examine that line carefully. It's using a JRE image to execute javac, by providing a module library that I've just compiled in my copy of the langtools repo. The first line of output is the version info, as requested by the -version option. The remaining lines give information about one of the javac classes, as requested by the -XDshowClass option. With that option we can see exactly where the javac class com.sun.tools.javac.Main is coming from, and the file URL confirms that it is coming from the module library we just built. This means that while developing new features in javac, we can just build and use a temporary module library containing the langtools modules, without having to rebuild all of JDK. Pretty nifty, huh? -- Jon From mr at sun.com Thu May 20 21:05:02 2010 From: mr at sun.com (Mark Reinhold) Date: Thu, 20 May 2010 21:05:02 -0700 Subject: Review request: Install module content into zip files Message-ID: <20100521040503.00B2C460@eggemoggin.niobe.net> http://cr.openjdk.java.net/~mr/jigsaw/rev/zip-module-content/ This change causes a module's classes and resources to be stored in zip files within the target library, regardless of whether the module came from a .jmod file or from explicit class and resource trees. This will help performance a tiny bit on some platforms and a small bit on others. It's also a prelude to an even more-efficient library format, which will store zip-file offsets directly in module configuration files so that we never have to read zip-file directories. - Mark From Dalibor.Topic at Sun.COM Fri May 21 07:01:39 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 21 May 2010 16:01:39 +0200 Subject: Review request: Install module content into zip files In-Reply-To: <20100521040503.00B2C460@eggemoggin.niobe.net> References: <20100521040503.00B2C460@eggemoggin.niobe.net> Message-ID: <4BF69243.7040909@sun.com> Mark Reinhold wrote: > http://cr.openjdk.java.net/~mr/jigsaw/rev/zip-module-content/ > > This change causes a module's classes and resources to be stored in zip > files within the target library, regardless of whether the module came > from a .jmod file or from explicit class and resource trees. > > This will help performance a tiny bit on some platforms and a small bit > on others. It's also a prelude to an even more-efficient library format, > which will store zip-file offsets directly in module configuration files > so that we never have to read zip-file directories. Nice, I like the extensions to Files, in particular, and the cleanup in ModuleFileFormat. Small comments: ModuleFileFormat.java: 632 public void readUncompressedFile(DataInputStream in, 633 ModuleFile.SectionType type, 634 int csize) 635 throws IOException 636 { 637 assert type != ModuleFile.SectionType.MODULE_INFO; -> this assert is gone in the patch. I'm not sure why, as the only uncompressed format atm is the module info file. 730 private void unpack200gzip(DataInputStream in) throws IOException { [..] 735 unpacker.unpack(gis, contentStream()); doesn't close the content stream. Files.java: Nice. A few things I could use would be: 1) a public void copy(InputStream, OutputStream) would be useful for replacing the various bits in ModuleFileFormat doing the same thing. 2) It would be nice if the copy methods returned the number of bytes copied. Same for storeTree -> that would make it easy to use those methods during module file writing to get the usize right. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From Dalibor.Topic at Sun.COM Fri May 21 08:45:41 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 21 May 2010 17:45:41 +0200 Subject: Woohoo! langtools becoming module aware In-Reply-To: <4BF5D8DB.4060308@oracle.com> References: <4BF5D8DB.4060308@oracle.com> Message-ID: <4BF6AAA5.3080905@sun.com> Jonathan Gibbons wrote: > This means that while developing new features in javac, we can just > build and use a temporary module library containing the langtools > modules, without having to rebuild all of JDK. > > Pretty nifty, huh? Indeed! cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From jonathan.gibbons at oracle.com Fri May 21 09:11:14 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Fri, 21 May 2010 09:11:14 -0700 Subject: Woohoo! langtools becoming module aware In-Reply-To: <4BF6AAA5.3080905@sun.com> References: <4BF5D8DB.4060308@oracle.com> <4BF6AAA5.3080905@sun.com> Message-ID: <4BF6B0A2.1010002@oracle.com> On 05/21/2010 08:45 AM, Dalibor Topic wrote: > Jonathan Gibbons wrote: > >> This means that while developing new features in javac, we can just >> build and use a temporary module library containing the langtools >> modules, without having to rebuild all of JDK. >> >> Pretty nifty, huh? >> > Indeed! > > cheers, > dalibor topic > > Thanks. So what're the vibes about providing Ant task wrappers for jmod and jpkg? Is anyone looking at this yet, and if so, how sophisticated are we thinking -- see my earlier email about having these commands support efficient repeated use. Where should such tasks live? Currently, JDK does not provide general purpose Ant tasks, but there are a few custom tasks hidden in those parts of the build that use Ant. If it is just langtools wanting to use and I'll write and provide tasks sufficient to the needs of langtools as langtools build tools, but in time, I would hope such tasks become more generally applicable. -- Jon From mark.reinhold at oracle.com Fri May 21 11:10:09 2010 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Fri, 21 May 2010 11:10:09 -0700 Subject: Review request: Install module content into zip files In-Reply-To: dalibor.topic@sun.com; Fri, 21 May 2010 16:01:39 +0200; <4BF69243.7040909@sun.com> Message-ID: <20100521181009.952873A9@eggemoggin.niobe.net> > Date: Fri, 21 May 2010 16:01:39 +0200 > From: dalibor.topic at sun.com > Nice, I like the extensions to Files, in particular, and the cleanup in > ModuleFileFormat. Small comments: > > ModuleFileFormat.java: > > 632 public void readUncompressedFile(DataInputStream in, > 633 ModuleFile.SectionType type, > 634 int csize) > 635 throws IOException > 636 { > 637 assert type != ModuleFile.SectionType.MODULE_INFO; > > -> this assert is gone in the patch. I'm not sure why, as the only > uncompressed format atm is the module info file. The previous version of this method included the assert but also some later logic to handle the case of type == MODULE_INFO. While refactoring I removed that later logic and also the assert. I'll restore the assert. > 730 private void unpack200gzip(DataInputStream in) throws > IOException { > [..] > 735 unpacker.unpack(gis, contentStream()); > > doesn't close the content stream. It doesn't need to, and in fact it shouldn't since resources can follow in the module file. The content stream is closed by the MFF.close() method. > Files.java: > > Nice. A few things I could use would be: > > 1) a public void copy(InputStream, OutputStream) would be useful for > replacing the various bits in ModuleFileFormat doing the same thing. > > 2) It would be nice if the copy methods returned the number of bytes > copied. Same for storeTree -> that would make it easy to use those > methods during module file writing to get the usize right. Feel free to revise/enhance Files.java as needed. Thanks for the review. - Mark From Dalibor.Topic at Sun.COM Fri May 21 11:34:11 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 21 May 2010 20:34:11 +0200 Subject: Review request: Install module content into zip files In-Reply-To: <20100521181009.952873A9@eggemoggin.niobe.net> References: <20100521181009.952873A9@eggemoggin.niobe.net> Message-ID: <4BF6D223.6020408@sun.com> mark.reinhold at oracle.com wrote: > The previous version of this method included the assert but also some > later logic to handle the case of type == MODULE_INFO. While refactoring > I removed that later logic and also the assert. I'll restore the assert. thanks! and thanks for the refactorings. > Feel free to revise/enhance Files.java as needed. thanks, will do, and post for review once your patch goes in. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From jonathan.gibbons at oracle.com Fri May 21 18:16:35 2010 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Sat, 22 May 2010 01:16:35 +0000 Subject: hg: jigsaw/jigsaw/langtools: 7 new changesets Message-ID: <20100522011648.4467A444B9@hg.openjdk.java.net> Changeset: ebf09be0222c Author: jjg Date: 2010-05-13 11:30 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/ebf09be0222c 6952188: update timeout for langtools jtreg tests on JPRT Reviewed-by: ohair ! test/Makefile Changeset: e9ef849ae0ed Author: mcimadamore Date: 2010-05-19 16:41 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/e9ef849ae0ed 6880344: Recursive type parameters do not compile Summary: Issue in type-variable substitution causes valid code to be rejected Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/generics/typevars/T6880344.java Changeset: 2881b376a689 Author: mcimadamore Date: 2010-05-19 16:42 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/2881b376a689 6946618: sqe test fails: javac/generics/NewOnTypeParm in pit jdk7 b91 in all platforms. Summary: Bad cast to ClassType in the new diamond implementation fails if the target type of the instance creation expression is a type-variable Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/generics/6946618/T6946618a.java + test/tools/javac/generics/6946618/T6946618a.out + test/tools/javac/generics/6946618/T6946618b.java + test/tools/javac/generics/6946618/T6946618b.out + test/tools/javac/generics/6946618/T6946618c.java + test/tools/javac/generics/6946618/T6946618c.out Changeset: eb849389ae2c Author: mcimadamore Date: 2010-05-19 16:43 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/eb849389ae2c 6948381: javac Null Pointer Exception in Types.makeCompoundType Summary: Race condition between symbol completion and attribution of import statements causes NPE when creating intersection type Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/6948381/T6948381.java + test/tools/javac/6948381/npe/A.java + test/tools/javac/6948381/npe/B.java Changeset: 1d587ef8bf56 Author: mcimadamore Date: 2010-05-19 16:43 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/1d587ef8bf56 6951833: latest diamond implementation generates spurious raw type warnings Summary: Raw warning checks should be disabled in the presence of a diamond AST node Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/generics/diamond/T6951833.java Changeset: e9d66d392a8d Author: jjg Date: 2010-05-21 17:32 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/e9d66d392a8d 6954901: langtools/test/Makefile should check for bin/javac(.exe) instead of lib/tools.jar Reviewed-by: ohair ! test/Makefile Changeset: 71bc65043b35 Author: jjg Date: 2010-05-21 18:01 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/71bc65043b35 Merge ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java From jonathan.gibbons at oracle.com Fri May 21 18:44:49 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Fri, 21 May 2010 18:44:49 -0700 Subject: RFE: java -L Message-ID: <4BF73711.6080405@oracle.com> In the world of bootstrapping, it is common to use tools like javac, etc, and to override the location of the classes executed by those tools. This is typically done by passing -Xbootclasspath to the underlying runtime, by prefixing it with -J, as in javac -J-Xbootclasspath:value ... In our brave new world, there is no -Xbootclasspath; we get to use -L instead. But it sure is ugly to have to prefix both the option name and value with -J, and write javac -J-L -Jvalue Can we please change the options so that either -L can optionally take a value after a ':' (i.e. "-L value" or "-L:value") or we have a new option like -XL which always takes the value after a ':' ? I'm looking at all the work we need to do in the build to allow us to build javac so that it is executed in module mode, and simplifying the -L option would make it a bunchy easier. -- Jon From karen.kinnear at oracle.com Fri May 21 20:07:40 2010 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Fri, 21 May 2010 23:07:40 -0400 Subject: RFE: java -L In-Reply-To: <4BF73711.6080405@oracle.com> References: <4BF73711.6080405@oracle.com> Message-ID: <80DB1DF6-FD50-4D1B-9304-D3AF73DCA81D@oracle.com> Are you considering the same kind of change for java -m ? It would be very nice to have these both as single strings rather than with two components. I'd vote for -modulelibrary:value -module:value or something more meaningful than just a single letter string. thanks, Karen On May 21, 2010, at 9:44 PM, Jonathan Gibbons wrote: > In the world of bootstrapping, it is common to use tools like javac, > etc, and to override the location of the classes executed by those > tools. This is typically done by passing -Xbootclasspath to the > underlying runtime, by prefixing it with -J, as in > > javac -J-Xbootclasspath:value ... > > In our brave new world, there is no -Xbootclasspath; we get to use - > L instead. But it sure is ugly to have to prefix both the option > name and value with -J, and write > > javac -J-L -Jvalue > > Can we please change the options so that either -L can optionally > take a value after a ':' (i.e. "-L value" or "-L:value") or we have > a new option like -XL which always takes the value after a ':' ? > > I'm looking at all the work we need to do in the build to allow us > to build javac so that it is executed in module mode, and > simplifying the -L option would make it a bunchy easier. > > -- Jon > > > > From jonathan.gibbons at oracle.com Fri May 21 20:35:46 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Fri, 21 May 2010 20:35:46 -0700 Subject: RFE: java -L In-Reply-To: <80DB1DF6-FD50-4D1B-9304-D3AF73DCA81D@oracle.com> References: <4BF73711.6080405@oracle.com> <80DB1DF6-FD50-4D1B-9304-D3AF73DCA81D@oracle.com> Message-ID: <4BF75112.9090507@oracle.com> Hi Karen, I've not yet found a need to override a module name from a tool, meaning I have not yet found a need to go javac -J-m:newjavac so I'm not asking for that, but I'm not against it either. There has long been a need to change where classes come from, as in javac -J-Xbootclasspath/p:value so mostly I'm just asking for the new-world equivalent, with -L. I'm not fussed about the name of the option either, partly because we're all over the place anyway with option names. For example, jmod supports -L and --library as synonyms, but java has no precedent for double-dash long option names. As long as I don't have to prefix both the option and its argument with -J, I'll be satisfied. :-) Having consistency between the tools (java, jmod, jpkg, etc) would be nice too! -- Jon On 05/21/2010 08:07 PM, Karen Kinnear wrote: > Are you considering the same kind of change for java -m ? > It would be > very nice to have these both as single strings rather than with two > components. I'd vote > for -modulelibrary:value -module:value or something more meaningful > than just a single > letter string. > > thanks, > Karen > > On May 21, 2010, at 9:44 PM, Jonathan Gibbons wrote: > >> In the world of bootstrapping, it is common to use tools like javac, >> etc, and to override the location of the classes executed by those >> tools. This is typically done by passing -Xbootclasspath to the >> underlying runtime, by prefixing it with -J, as in >> >> javac -J-Xbootclasspath:value ... >> >> In our brave new world, there is no -Xbootclasspath; we get to use -L >> instead. But it sure is ugly to have to prefix both the option name >> and value with -J, and write >> >> javac -J-L -Jvalue >> >> Can we please change the options so that either -L can optionally >> take a value after a ':' (i.e. "-L value" or "-L:value") or we have >> a new option like -XL which always takes the value after a ':' ? >> >> I'm looking at all the work we need to do in the build to allow us to >> build javac so that it is executed in module mode, and simplifying >> the -L option would make it a bunchy easier. >> >> -- Jon >> >> >> >> > From vincent.x.ryan at oracle.com Sun May 23 11:54:45 2010 From: vincent.x.ryan at oracle.com (vincent.x.ryan at oracle.com) Date: Sun, 23 May 2010 18:54:45 +0000 Subject: hg: jigsaw/jigsaw/jdk: 6951048: (jpkg) Enhance Packager to create signed modules Message-ID: <20100523185516.3BEE144531@hg.openjdk.java.net> Changeset: ced4f3b0ff58 Author: vinnie Date: 2010-05-22 20:07 +0100 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ced4f3b0ff58 6951048: (jpkg) Enhance Packager to create signed modules Reviewed-by: jigsaw-dev ! make/common/BuildPackages.gmk ! src/share/classes/org/openjdk/jigsaw/FileConstants.java ! src/share/classes/org/openjdk/jigsaw/Library.java ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java + src/share/classes/org/openjdk/jigsaw/ModuleFileSigner.java + src/share/classes/org/openjdk/jigsaw/ModuleFileVerifier.java ! src/share/classes/org/openjdk/jigsaw/SimpleLibrary.java ! src/share/classes/org/openjdk/jigsaw/cli/Librarian.java ! src/share/classes/org/openjdk/jigsaw/cli/Packager.java ! src/share/classes/sun/security/pkcs/ContentInfo.java ! test/org/openjdk/jigsaw/cli/ModuleFormatTest01.java + test/org/openjdk/jigsaw/cli/ModuleFormatTest01.sh + test/org/openjdk/jigsaw/cli/keystore.jks + test/org/openjdk/jigsaw/cli/keystore.pw From Alan.Bateman at oracle.com Mon May 24 05:55:48 2010 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 24 May 2010 13:55:48 +0100 Subject: Please review fix to StackOverflowError in jigsaw tracing In-Reply-To: <4BF42DF3.5000206@oracle.com> References: <4BE9BE7B.4030809@oracle.com> <4BF3D378.1000707@oracle.com> <4BF42DF3.5000206@oracle.com> Message-ID: <4BFA7754.4030701@oracle.com> Mandy Chung wrote: > : > Thanks for the comment. I revise the fix: > http://cr.openjdk.java.net/~mchung/6951456/webrev.01/ This looks better. A couple of comments: Is "inited" used now? It doesn't appear to be and so can be removed. Cache.print does more than the method name suggests. Maybe Cache.drain or printAndClear? Otherwise I think it's okay. -Alan. From Alan.Bateman at oracle.com Mon May 24 08:57:07 2010 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 24 May 2010 16:57:07 +0100 Subject: Review of platform modules & class analyzer change In-Reply-To: <4BF37901.8000306@oracle.com> References: <4BF37901.8000306@oracle.com> Message-ID: <4BFAA1D3.4060604@oracle.com> Mandy Chung wrote: > Webrev at: > http://cr.openjdk.java.net/~mchung/jigsaw/platform-modules > > Summary of Changes: > 1. All module names are qualified names with "jdk.*" or "sun.*" > prefix. > 2. Class analyzer to generate requires optional in module-info.java > 3. Take make/docs/NON_CORE_PKGS.gmk to prepare for the analysis > of public non-platform supported APIs. > 4. Fix Resolver to link with optional modules if exist > 5. Move make/modules/tools to make/tools/classanlyzer so it will > be built once. > > Thanks > Mandy I went through the module changes and the make files changes and they look okay to me. I've scanned the updates to the class analyzer tool but I haven't done a detailed review. Will do, if you need a detailed review before you push this. -Alan. From mandy.chung at oracle.com Mon May 24 09:17:53 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Mon, 24 May 2010 09:17:53 -0700 Subject: Please review fix to StackOverflowError in jigsaw tracing In-Reply-To: <4BFA7754.4030701@oracle.com> References: <4BE9BE7B.4030809@oracle.com> <4BF3D378.1000707@oracle.com> <4BF42DF3.5000206@oracle.com> <4BFA7754.4030701@oracle.com> Message-ID: <4BFAA6B1.3040808@oracle.com> On 05/24/10 05:55, Alan Bateman wrote: > Mandy Chung wrote: >> : >> Thanks for the comment. I revise the fix: >> http://cr.openjdk.java.net/~mchung/6951456/webrev.01/ > This looks better. A couple of comments: > > Is "inited" used now? It doesn't appear to be and so can be removed. I removed it. > > Cache.print does more than the method name suggests. Maybe Cache.drain > or printAndClear? > Renamed it to Cache.printAndClear. > Otherwise I think it's okay. > Thanks for the review. Mandy From mandy.chung at oracle.com Mon May 24 10:44:05 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 17:44:05 +0000 Subject: hg: jigsaw/jigsaw/jdk: 6951456: jigsaw JIGSAW_TRACE=3 stack overflow due to recursion Message-ID: <20100524174431.ECCF344575@hg.openjdk.java.net> Changeset: ca25434a9d90 Author: mchung Date: 2010-05-24 10:43 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ca25434a9d90 6951456: jigsaw JIGSAW_TRACE=3 stack overflow due to recursion Reviewed-by: alanb ! src/share/classes/org/openjdk/jigsaw/Trace.java From mandy.chung at oracle.com Mon May 24 13:47:17 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:17 +0000 Subject: hg: jigsaw/jigsaw: Added tag jigsaw-b05 for changeset bb6913e3202a Message-ID: <20100524204717.43CFE4458B@hg.openjdk.java.net> Changeset: ea7bd43ecda5 Author: mchung Date: 2010-05-24 13:44 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/rev/ea7bd43ecda5 Added tag jigsaw-b05 for changeset bb6913e3202a ! .hgtags From mandy.chung at oracle.com Mon May 24 13:47:20 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:20 +0000 Subject: hg: jigsaw/jigsaw/corba: Added tag jigsaw-b05 for changeset 3558a167dc8f Message-ID: <20100524204721.AA5794458D@hg.openjdk.java.net> Changeset: 8dec33cd256e Author: mchung Date: 2010-05-24 13:44 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/corba/rev/8dec33cd256e Added tag jigsaw-b05 for changeset 3558a167dc8f ! .hgtags From mandy.chung at oracle.com Mon May 24 13:47:24 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:24 +0000 Subject: hg: jigsaw/jigsaw/hotspot: Added tag jigsaw-b05 for changeset 8a6c97c3e8d1 Message-ID: <20100524204728.8CDE74458E@hg.openjdk.java.net> Changeset: 10399ce71866 Author: mchung Date: 2010-05-24 13:44 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot/rev/10399ce71866 Added tag jigsaw-b05 for changeset 8a6c97c3e8d1 ! .hgtags From mandy.chung at oracle.com Mon May 24 13:47:31 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:31 +0000 Subject: hg: jigsaw/jigsaw/jaxp: Added tag jigsaw-b05 for changeset 14d143bb1fd6 Message-ID: <20100524204731.667C84458F@hg.openjdk.java.net> Changeset: 8e549baa9d5d Author: mchung Date: 2010-05-24 13:44 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp/rev/8e549baa9d5d Added tag jigsaw-b05 for changeset 14d143bb1fd6 ! .hgtags From mandy.chung at oracle.com Mon May 24 13:47:33 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:33 +0000 Subject: hg: jigsaw/jigsaw/jaxws: Added tag jigsaw-b05 for changeset 50dbc5808ec3 Message-ID: <20100524204733.F16C144590@hg.openjdk.java.net> Changeset: 2addcb5741c7 Author: mchung Date: 2010-05-24 13:44 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws/rev/2addcb5741c7 Added tag jigsaw-b05 for changeset 50dbc5808ec3 ! .hgtags From mandy.chung at oracle.com Mon May 24 13:47:36 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:47:36 +0000 Subject: hg: jigsaw/jigsaw/jdk: Added tag jigsaw-b05 for changeset ca25434a9d90 Message-ID: <20100524204802.4B86E44591@hg.openjdk.java.net> Changeset: 4153ad1b4223 Author: mchung Date: 2010-05-24 13:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/4153ad1b4223 Added tag jigsaw-b05 for changeset ca25434a9d90 ! .hgtags From mandy.chung at oracle.com Mon May 24 13:48:05 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 20:48:05 +0000 Subject: hg: jigsaw/jigsaw/langtools: Added tag jigsaw-b05 for changeset 71bc65043b35 Message-ID: <20100524204808.BDBD444592@hg.openjdk.java.net> Changeset: eedb56f5ad46 Author: mchung Date: 2010-05-24 13:45 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/langtools/rev/eedb56f5ad46 Added tag jigsaw-b05 for changeset 71bc65043b35 ! .hgtags From mandy.chung at oracle.com Mon May 24 14:26:45 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Mon, 24 May 2010 14:26:45 -0700 Subject: Review request: Install module content into zip files Message-ID: <4BFAEF15.80301@oracle.com> Mark Reinhold wrote: > http://cr.openjdk.java.net/~mr/jigsaw/rev/zip-module-content/ > > Looks good. The classfiles and resource files are now stored in a zip file in the target directory (previously in the "classes" directory). For packaging a module file, I think jpkg -m option should accept a directory containing both .class files and resource files? Typically resource files are copied to the classes destination directory during compilation. This has nothing to do with this change. I guess that jpkg options were influenced by the layout of the module library and potential optimization in mind and thus I bring it up here. Mandy > This change causes a module's classes and resources to be stored in zip > files within the target library, regardless of whether the module came > from a .jmod file or from explicit class and resource trees. > > This will help performance a tiny bit on some platforms and a small bit > on others. It's also a prelude to an even more-efficient library format, > which will store zip-file offsets directly in module configuration files > so that we never have to read zip-file directories. > > - Mark > From mandy.chung at oracle.com Mon May 24 14:28:02 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 21:28:02 +0000 Subject: hg: jigsaw/jigsaw/jdk: 4 new changesets Message-ID: <20100524212853.27C6544595@hg.openjdk.java.net> Changeset: ef6c3dc91815 Author: mchung Date: 2010-05-12 14:41 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ef6c3dc91815 6951661: Eliminate jvmstat dependency on sun.management.counter Summary: jvmstat keeps its own copy of Units and Variability class Reviewed-by: alanb ! src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java ! src/share/classes/sun/jvmstat/monitor/Monitor.java + src/share/classes/sun/jvmstat/monitor/Units.java + src/share/classes/sun/jvmstat/monitor/Variability.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfLongMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java ! src/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/share/classes/sun/tools/jstat/JStatLogger.java ! src/share/classes/sun/tools/jstat/Jstat.java Changeset: ebb77758b113 Author: mchung Date: 2010-05-18 13:12 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ebb77758b113 6951599: Rename package of security tools for modularization Summary: Move PolicyTool to sun.security.tools.policytool package Reviewed-by: weijun ! make/modules/modules.config ! make/sun/security/tools/Makefile - src/share/classes/sun/security/tools/PolicyTool.java + src/share/classes/sun/security/tools/policytool/PolicyTool.java Changeset: 335e3289aba7 Author: mchung Date: 2010-05-21 11:51 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/335e3289aba7 Add Defs-modules for common modules build variables Reviewed-by: jjg, ohair ! make/Makefile ! make/common/BuildPackages.gmk + make/common/Defs-modules.gmk ! make/common/Defs.gmk ! make/common/Modules.gmk ! make/common/shared/Defs-java.gmk ! make/modules/Makefile ! make/modules/modules.config ! make/modules/tools/Makefile + make/modules/update_module.sh Changeset: 7e1d7e037819 Author: mchung Date: 2010-05-24 14:27 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/7e1d7e037819 Merge ! make/common/BuildPackages.gmk From mandy.chung at oracle.com Mon May 24 16:44:01 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Mon, 24 May 2010 23:44:01 +0000 Subject: hg: jigsaw/jigsaw/jdk: Move java.dyn and sun.dyn to the base module Message-ID: <20100524234414.3B7B74459B@hg.openjdk.java.net> Changeset: 3b60427f8e1c Author: mchung Date: 2010-05-24 16:43 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/3b60427f8e1c Move java.dyn and sun.dyn to the base module ! make/modules/modules.config ! make/modules/modules.group From jonathan.gibbons at oracle.com Mon May 24 19:25:15 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 24 May 2010 19:25:15 -0700 Subject: converting javac to be a modular app Message-ID: <4BFB350B.7020003@oracle.com> On the face of it, it ought to be easy to change javac to be executed with module mode instead of legacy mode. You might think it is sufficient to simply remove the reference to -J-Xmode:legacy in the appropriate line of jdk/make/launchers/Makefile, as in the following diff: > $ hg diff -U 0 > diff -r 7e1d7e037819 make/launchers/Makefile > --- a/make/launchers/Makefile Mon May 24 14:27:31 2010 -0700 > +++ b/make/launchers/Makefile Mon May 24 16:43:30 2010 -0700 > @@ -64,1 +64,1 @@ > -$(call make-launcher, javac, com.sun.tools.javac.Main, -J-Xmode:legacy, ) > +$(call make-launcher, javac, com.sun.tools.javac.Main, , ) If only it were that simple ... To understand the real problem, you need to understand javac's role in building JDK. For a full description of the build process, see Kelly's blog, "Anatomy of the JDK Build": http://blogs.sun.com/kto/entry/anatomy_of_the_jdk_build Here's a quick summary: 1. Build the latest javac with the BOOTJAVA javac to create a hybrid javac (call it hybrid-1) that can run on BOOTJAVA but which can compile JDK7 code. 2. Use hybrid-1 javac to compile all the langtools repository for delivery into the final bundles. 3. Use hybrid-1 javac to compile the corba, jaxws, jaxp, repositories 4. Build the jdk repository using hybrid-1 javac, and including all the classes compiled in steps 1, 2 and 3, to produce candidate JDK bundles. Many developers stop at this point. But up to this point, the JDK created in step 4 has not been tested, so a common step is to perform the build with SKIP_BOOT_CYCLE=false. If that variable is set, the build will repeat steps 1-4 using the JDK from step 4 (call it "interim JDK") as the setting for BOOTJAVA. 5. Build the latest javac with the interim JDK javac to create a hybrid javac (call it hybrid-2) that can run on the interim JDK and which can compile JDK7 code. 6. Use hybrid-2 javac to compile all the langtools repository for delivery into the final bundles. 7. Use hybrid-2 javac to compile the corba, jaxws, jaxp, repositories 8. Build the jdk repository using hybrid-2 javac, and including all the classes compiled in steps 1, 2 and 3, to produce final JDK bundles. So where's the problem? Not surprisingly, it's in those hybrid-1 and hybrid-2 versions of javac. Currently, we synthesize those hybrid versions of javac by using -J-Xbootclasspath/p: to override the location of the javac classes being used by the underlying JDK. As long as we build javac to execute in legacy mode, that works just fine. But once we switch javac to use module mode, we lose the ability to use -J-Xbootclasspath/p:. Instead, we have to use the new "-L library" option, which replaces "-Xbootclasspath/p:classes". What does that entail? Currently, there is no explicit artifact that is identifiable as "hybrid-1" or "hybrid-2" javac. Instead, the langtools part of the build delivers a set of classes, to be used as part of a hybrid javac, and each downstream repository in the forest uses those classes with -J-Xbootclasspath to synthesize the hybrid javac. So, there are two sets of changes to be made. - The langtools repository must determine if it has been given a legacy JDK or a modular JDK for its bootstrap. If it has been given a modular JDK, it needs to create a module library to be used for downstream compilations. - All downstream builds need to determine if they have been given a legacy JDK or a modular JDK for their bootstrap, and so should synthesize their hybrid javac using "-Xbootclasspath/p:classes" or "-L library" (or rather, "-J-Xbootclasspath/p:classes" or "-J-L -Jlibrary". Mild uugh!) Note that we cannot hard-code the change to use "-L library" through the life of JDK7. In other words, for as long as we need to start the build using a legacy JDK, such as JDK 6, the build must be "bimodal", able to work with both a legacy JDK, or a modular JDK such as may just have been built. The changes to have the langtools repository build a module library are essentially as described here: http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000960.html However, the changes described there concerned a developer build of javac; the changes need to be replicated to apply to the bootstrap builds as well. This corresponds to langtools having settings for two different versions of JDK -- one to build with, and one to execute what it builds: the langtools build needs to be prepared for each setting to be given either a legacy JDK or a modular JDK. The changes to have each downstream repository determine whether to use -Xbootclasspath or L are not particularly difficult. One minor complication to take into account is that some repositories use Ant instead of "make". Another complication is whether or not this needs to be a synchronized build change across all repositories. One way to avoid that would be a two phase approach, such that we first change all repositories to explicitly force the use of legacy mode for javac, then we can change the default mode for javac, then finally update the repositories to work with the default. That's almost it. You'd think. If only it were that simple ... Who spotted that sometimes developers perform "partial builds" and don't necessarily use and build a copy of the langtools repository? Instead, you can set ALT_JDK_IMPORT_PATH to a recent build of JDK. So yes, we need to make the build work in that case as well. And, for now, that is left as an exercise for the reader. From mandy.chung at oracle.com Mon May 24 20:20:33 2010 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Tue, 25 May 2010 03:20:33 +0000 Subject: hg: jigsaw/jigsaw/jdk: Revert make-launcher change that is supposed to go with platform module renaming change. Message-ID: <20100525032055.69CFC445A6@hg.openjdk.java.net> Changeset: 1880f76e17f6 Author: mchung Date: 2010-05-24 20:20 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/1880f76e17f6 Revert make-launcher change that is supposed to go with platform module renaming change. ! make/common/Defs.gmk From mandy.chung at oracle.com Tue May 25 13:32:08 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Tue, 25 May 2010 13:32:08 -0700 Subject: Incremental jdk development Message-ID: <4BFC33C8.80101@oracle.com> In the jigsaw repo, the makefile to modularize the jdk (make/modules/Makefile) is not optimized and it will reinstall all jdk modules in a module library every time it is made. Some of us have our own script to update the module library rather than remaking make/modules/Makefile. I include such script in the jigsaw/jdk repo for the incremental jdk development as an interim solution: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/file/335e3289aba7/make/modules/update_module.sh For example, after you recompile classes in some directory, $ cd make/java/java ; make all you can use the script to update the module library: $ make/modules/update_module.sh jdk.boot Please refer to the script for different options. Hope this helps. Mandy [1] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000960.html From mandy.chung at oracle.com Wed May 26 09:20:10 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Wed, 26 May 2010 09:20:10 -0700 Subject: converting javac to be a modular app In-Reply-To: <4BFB350B.7020003@oracle.com> References: <4BFB350B.7020003@oracle.com> Message-ID: <4BFD4A3A.5010702@oracle.com> Jon, This note is helpful and it gives an idea how complicate the world we are in! My comment inlined below. On 05/24/10 19:25, Jonathan Gibbons wrote: > On the face of it, it ought to be easy to change javac to be executed > with module mode instead of legacy mode. You might think it is > sufficient to simply remove the reference to -J-Xmode:legacy in the > appropriate line of jdk/make/launchers/Makefile, as in the following > diff: > >> $ hg diff -U 0 >> diff -r 7e1d7e037819 make/launchers/Makefile >> --- a/make/launchers/Makefile Mon May 24 14:27:31 2010 -0700 >> +++ b/make/launchers/Makefile Mon May 24 16:43:30 2010 -0700 >> @@ -64,1 +64,1 @@ >> -$(call make-launcher, javac, com.sun.tools.javac.Main, >> -J-Xmode:legacy, ) >> +$(call make-launcher, javac, com.sun.tools.javac.Main, , ) > > If only it were that simple ... > > To understand the real problem, you need to understand javac's role in > building JDK. For a full description of the build process, see Kelly's > blog, "Anatomy of the JDK Build": > http://blogs.sun.com/kto/entry/anatomy_of_the_jdk_build > > Here's a quick summary: > > 1. Build the latest javac with the BOOTJAVA javac to create a hybrid > javac (call it hybrid-1) that can run on BOOTJAVA but which can > compile JDK7 code. > 2. Use hybrid-1 javac to compile all the langtools repository for > delivery into the final bundles. > 3. Use hybrid-1 javac to compile the corba, jaxws, jaxp, repositories > 4. Build the jdk repository using hybrid-1 javac, and including all > the classes compiled in steps 1, 2 and 3, to produce candidate JDK > bundles. > > Many developers stop at this point. But up to this point, the JDK > created in step 4 has not been tested, so a common step is to perform > the build with SKIP_BOOT_CYCLE=false. If that variable is set, the > build will repeat steps 1-4 using the JDK from step 4 (call it > "interim JDK") as the setting for BOOTJAVA. > > 5. Build the latest javac with the interim JDK javac to create a > hybrid javac (call it hybrid-2) that can run on the interim JDK and > which can compile JDK7 code. > 6. Use hybrid-2 javac to compile all the langtools repository for > delivery into the final bundles. > 7. Use hybrid-2 javac to compile the corba, jaxws, jaxp, repositories > 8. Build the jdk repository using hybrid-2 javac, and including all > the classes compiled in steps 1, 2 and 3, to produce final JDK bundles. > > So where's the problem? Not surprisingly, it's in those hybrid-1 and > hybrid-2 versions of javac. Currently, we synthesize those hybrid > versions of javac by using -J-Xbootclasspath/p: to override the > location of the javac classes being used by the underlying JDK. As > long as we build javac to execute in legacy mode, that works just > fine. But once we switch javac to use module mode, we lose the ability > to use -J-Xbootclasspath/p:. Instead, we have to use the new "-L > library" option, which replaces "-Xbootclasspath/p:classes". What does > that entail? > > Currently, there is no explicit artifact that is identifiable as > "hybrid-1" or "hybrid-2" javac. Instead, the langtools part of the > build delivers a set of classes, to be used as part of a hybrid javac, > and each downstream repository in the forest uses those classes with > -J-Xbootclasspath to synthesize the hybrid javac. So, there are two > sets of changes to be made. > - The langtools repository must determine if it has been given a > legacy JDK or a modular JDK for its bootstrap. If it has been given a > modular JDK, it needs to create a module library to be used for > downstream compilations. > - All downstream builds need to determine if they have been given a > legacy JDK or a modular JDK for their bootstrap, and so should > synthesize their hybrid javac using "-Xbootclasspath/p:classes" or "-L > library" (or rather, "-J-Xbootclasspath/p:classes" or "-J-L > -Jlibrary". Mild uugh!) > > Note that we cannot hard-code the change to use "-L library" through > the life of JDK7. In other words, for as long as we need to start the > build using a legacy JDK, such as JDK 6, the build must be "bimodal", > able to work with both a legacy JDK, or a modular JDK such as may just > have been built. > > The changes to have the langtools repository build a module library > are essentially as described here: > > http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000960.html > > However, the changes described there concerned a developer build of > javac; the changes need to be replicated to apply to the bootstrap > builds as well. This corresponds to langtools having settings for two > different versions of JDK -- one to build with, and one to execute > what it builds: the langtools build needs to be prepared for each > setting to be given either a legacy JDK or a modular JDK. > > The changes to have each downstream repository determine whether to > use -Xbootclasspath or L are not particularly difficult. One minor > complication to take into account is that some repositories use Ant > instead of "make". Another complication is whether or not this needs > to be a synchronized build change across all repositories. One way to > avoid that would be a two phase approach, such that we first change > all repositories to explicitly force the use of legacy mode for javac, > then we can change the default mode for javac, then finally update the > repositories to work with the default. > I think the javac would have to stay in legacy mode for jdk build for some time until the jdk compiles classes in its module directory (i.e. setting -modulepath for javac to use). In step 4 & 8 (building jdk), the hybrid javac overrides the bootclasspath with the classes directory as it compiles itself. The module library for the jdk is created at the end of the jdk build. It can use -L option to set to use the langtools module library but it still needs a way to compile jdk sources with the newly built classes during the jdk build. What steps would you imagine it takes to update the langtools repo to work with the default? I guess langtools can remain being compiled in single module mode using the -sourcepath option? It doesn't require langtools to be compiled as modules for phase 2. I try to put things together in my head - do I get this right? > That's almost it. You'd think. > > If only it were that simple ... > > Who spotted that sometimes developers perform "partial builds" and > don't necessarily use and build a copy of the langtools repository? > Instead, you can set ALT_JDK_IMPORT_PATH to a recent build of JDK. So > yes, we need to make the build work in that case as well. And, for > now, that is left as an exercise for the reader. > That's a good point. If ALT_JDK_IMPORT_PATH would be a modular JDK, the current workaround is to copy classes directly from the imported module library. The jdk makefiles have be modified to import corba, jaxp and jaxws from a modular JDK but yet to import langtools correctly. In the long-term, I think the jdk build would import from the langtools module files (and other components) from a promoted build rather than a module image. Mandy From jonathan.gibbons at oracle.com Wed May 26 09:33:38 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 26 May 2010 09:33:38 -0700 Subject: converting javac to be a modular app In-Reply-To: <4BFD4A3A.5010702@oracle.com> References: <4BFB350B.7020003@oracle.com> <4BFD4A3A.5010702@oracle.com> Message-ID: <4BFD4D62.4050206@oracle.com> Comments inline. -- Jon On 05/26/2010 09:20 AM, Mandy Chung wrote: > Jon, > > This note is helpful and it gives an idea how complicate the world we > are in! My comment inlined below. > > On 05/24/10 19:25, Jonathan Gibbons wrote: >> On the face of it, it ought to be easy to change javac to be executed >> with module mode instead of legacy mode. You might think it is >> sufficient to simply remove the reference to -J-Xmode:legacy in the >> appropriate line of jdk/make/launchers/Makefile, as in the following >> diff: >> >>> $ hg diff -U 0 >>> diff -r 7e1d7e037819 make/launchers/Makefile >>> --- a/make/launchers/Makefile Mon May 24 14:27:31 2010 -0700 >>> +++ b/make/launchers/Makefile Mon May 24 16:43:30 2010 -0700 >>> @@ -64,1 +64,1 @@ >>> -$(call make-launcher, javac, com.sun.tools.javac.Main, >>> -J-Xmode:legacy, ) >>> +$(call make-launcher, javac, com.sun.tools.javac.Main, , ) >> >> If only it were that simple ... >> >> To understand the real problem, you need to understand javac's role >> in building JDK. For a full description of the build process, see >> Kelly's blog, "Anatomy of the JDK Build": >> http://blogs.sun.com/kto/entry/anatomy_of_the_jdk_build >> >> Here's a quick summary: >> >> 1. Build the latest javac with the BOOTJAVA javac to create a hybrid >> javac (call it hybrid-1) that can run on BOOTJAVA but which can >> compile JDK7 code. >> 2. Use hybrid-1 javac to compile all the langtools repository for >> delivery into the final bundles. >> 3. Use hybrid-1 javac to compile the corba, jaxws, jaxp, repositories >> 4. Build the jdk repository using hybrid-1 javac, and including all >> the classes compiled in steps 1, 2 and 3, to produce candidate JDK >> bundles. >> >> Many developers stop at this point. But up to this point, the JDK >> created in step 4 has not been tested, so a common step is to perform >> the build with SKIP_BOOT_CYCLE=false. If that variable is set, the >> build will repeat steps 1-4 using the JDK from step 4 (call it >> "interim JDK") as the setting for BOOTJAVA. >> >> 5. Build the latest javac with the interim JDK javac to create a >> hybrid javac (call it hybrid-2) that can run on the interim JDK and >> which can compile JDK7 code. >> 6. Use hybrid-2 javac to compile all the langtools repository for >> delivery into the final bundles. >> 7. Use hybrid-2 javac to compile the corba, jaxws, jaxp, repositories >> 8. Build the jdk repository using hybrid-2 javac, and including all >> the classes compiled in steps 1, 2 and 3, to produce final JDK bundles. >> >> So where's the problem? Not surprisingly, it's in those hybrid-1 and >> hybrid-2 versions of javac. Currently, we synthesize those hybrid >> versions of javac by using -J-Xbootclasspath/p: to override the >> location of the javac classes being used by the underlying JDK. As >> long as we build javac to execute in legacy mode, that works just >> fine. But once we switch javac to use module mode, we lose the >> ability to use -J-Xbootclasspath/p:. Instead, we have to use the new >> "-L library" option, which replaces "-Xbootclasspath/p:classes". What >> does that entail? >> >> Currently, there is no explicit artifact that is identifiable as >> "hybrid-1" or "hybrid-2" javac. Instead, the langtools part of the >> build delivers a set of classes, to be used as part of a hybrid >> javac, and each downstream repository in the forest uses those >> classes with -J-Xbootclasspath to synthesize the hybrid javac. So, >> there are two sets of changes to be made. >> - The langtools repository must determine if it has been given a >> legacy JDK or a modular JDK for its bootstrap. If it has been given a >> modular JDK, it needs to create a module library to be used for >> downstream compilations. >> - All downstream builds need to determine if they have been given a >> legacy JDK or a modular JDK for their bootstrap, and so should >> synthesize their hybrid javac using "-Xbootclasspath/p:classes" or >> "-L library" (or rather, "-J-Xbootclasspath/p:classes" or "-J-L >> -Jlibrary". Mild uugh!) >> >> Note that we cannot hard-code the change to use "-L library" through >> the life of JDK7. In other words, for as long as we need to start the >> build using a legacy JDK, such as JDK 6, the build must be "bimodal", >> able to work with both a legacy JDK, or a modular JDK such as may >> just have been built. >> >> The changes to have the langtools repository build a module library >> are essentially as described here: >> >> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000960.html >> >> However, the changes described there concerned a developer build of >> javac; the changes need to be replicated to apply to the bootstrap >> builds as well. This corresponds to langtools having settings for two >> different versions of JDK -- one to build with, and one to execute >> what it builds: the langtools build needs to be prepared for each >> setting to be given either a legacy JDK or a modular JDK. >> >> The changes to have each downstream repository determine whether to >> use -Xbootclasspath or L are not particularly difficult. One minor >> complication to take into account is that some repositories use Ant >> instead of "make". Another complication is whether or not this needs >> to be a synchronized build change across all repositories. One way to >> avoid that would be a two phase approach, such that we first change >> all repositories to explicitly force the use of legacy mode for >> javac, then we can change the default mode for javac, then finally >> update the repositories to work with the default. >> > > I think the javac would have to stay in legacy mode for jdk build for > some time until the jdk compiles classes in its module directory (i.e. > setting -modulepath for javac to use). In step 4 & 8 (building jdk), > the hybrid javac overrides the bootclasspath with the classes > directory as it compiles itself. The module library for the jdk is > created at the end of the jdk build. It can use -L option to set to > use the langtools module library but it still needs a way to compile > jdk sources with the newly built classes during the jdk build. Ah, but that's the "other" bootclasspath, isn't it? The hybrid javac's are all about the use of the JVM bootclasspath, and changing to set the JVM module library. Here, you're talking about the javac bootclasspath and -L option. > > What steps would you imagine it takes to update the langtools repo to > work with the default? I guess langtools can remain being compiled in > single module mode using the -sourcepath option? It doesn't require > langtools to be compiled as modules for phase 2. I try to put things > together in my head - do I get this right? > >> That's almost it. You'd think. >> >> If only it were that simple ... >> >> Who spotted that sometimes developers perform "partial builds" and >> don't necessarily use and build a copy of the langtools repository? >> Instead, you can set ALT_JDK_IMPORT_PATH to a recent build of JDK. >> So yes, we need to make the build work in that case as well. And, >> for now, that is left as an exercise for the reader. >> > > That's a good point. If ALT_JDK_IMPORT_PATH would be a modular JDK, > the current workaround is to copy classes directly from the imported > module library. The jdk makefiles have be modified to import corba, > jaxp and jaxws from a modular JDK but yet to import langtools correctly. Hmmm, yes, I was just thinking of the javac bootstrap issues; I missed the need to import classes from the ALT_JDK_IMPORT_PATH. > > In the long-term, I think the jdk build would import from the > langtools module files (and other components) from a promoted build > rather than a module image. What is the difference that you're thinking of here? > > Mandy > > In the short term, my plan is to push changes that will have the langtools build create modules from the langtools bootstrap classes for optional use downstream if desired. We can then work on determining how to use those modules in the downstream repos. -- Jon From mandy.chung at oracle.com Wed May 26 10:05:12 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Wed, 26 May 2010 10:05:12 -0700 Subject: converting javac to be a modular app In-Reply-To: <4BFD4D62.4050206@oracle.com> References: <4BFB350B.7020003@oracle.com> <4BFD4A3A.5010702@oracle.com> <4BFD4D62.4050206@oracle.com> Message-ID: <4BFD54C8.4030803@oracle.com> On 05/26/10 09:33, Jonathan Gibbons wrote: > Comments inline. > > -- Jon > > > On 05/26/2010 09:20 AM, Mandy Chung wrote: >> Jon, >> >> This note is helpful and it gives an idea how complicate the world we >> are in! My comment inlined below. >> >> On 05/24/10 19:25, Jonathan Gibbons wrote: >>> On the face of it, it ought to be easy to change javac to be >>> executed with module mode instead of legacy mode. You might think it >>> is sufficient to simply remove the reference to -J-Xmode:legacy in >>> the appropriate line of jdk/make/launchers/Makefile, as in the >>> following diff: >>> >>>> $ hg diff -U 0 >>>> diff -r 7e1d7e037819 make/launchers/Makefile >>>> --- a/make/launchers/Makefile Mon May 24 14:27:31 2010 -0700 >>>> +++ b/make/launchers/Makefile Mon May 24 16:43:30 2010 -0700 >>>> @@ -64,1 +64,1 @@ >>>> -$(call make-launcher, javac, com.sun.tools.javac.Main, >>>> -J-Xmode:legacy, ) >>>> +$(call make-launcher, javac, com.sun.tools.javac.Main, , ) >>> >>> If only it were that simple ... >>> >>> To understand the real problem, you need to understand javac's role >>> in building JDK. For a full description of the build process, see >>> Kelly's blog, "Anatomy of the JDK Build": >>> http://blogs.sun.com/kto/entry/anatomy_of_the_jdk_build >>> >>> Here's a quick summary: >>> >>> 1. Build the latest javac with the BOOTJAVA javac to create a hybrid >>> javac (call it hybrid-1) that can run on BOOTJAVA but which can >>> compile JDK7 code. >>> 2. Use hybrid-1 javac to compile all the langtools repository for >>> delivery into the final bundles. >>> 3. Use hybrid-1 javac to compile the corba, jaxws, jaxp, repositories >>> 4. Build the jdk repository using hybrid-1 javac, and including all >>> the classes compiled in steps 1, 2 and 3, to produce candidate JDK >>> bundles. >>> >>> Many developers stop at this point. But up to this point, the JDK >>> created in step 4 has not been tested, so a common step is to >>> perform the build with SKIP_BOOT_CYCLE=false. If that variable is >>> set, the build will repeat steps 1-4 using the JDK from step 4 (call >>> it "interim JDK") as the setting for BOOTJAVA. >>> >>> 5. Build the latest javac with the interim JDK javac to create a >>> hybrid javac (call it hybrid-2) that can run on the interim JDK and >>> which can compile JDK7 code. >>> 6. Use hybrid-2 javac to compile all the langtools repository for >>> delivery into the final bundles. >>> 7. Use hybrid-2 javac to compile the corba, jaxws, jaxp, repositories >>> 8. Build the jdk repository using hybrid-2 javac, and including all >>> the classes compiled in steps 1, 2 and 3, to produce final JDK bundles. >>> >>> So where's the problem? Not surprisingly, it's in those hybrid-1 >>> and hybrid-2 versions of javac. Currently, we synthesize those >>> hybrid versions of javac by using -J-Xbootclasspath/p: to override >>> the location of the javac classes being used by the underlying JDK. >>> As long as we build javac to execute in legacy mode, that works just >>> fine. But once we switch javac to use module mode, we lose the >>> ability to use -J-Xbootclasspath/p:. Instead, we have to use the >>> new "-L library" option, which replaces "-Xbootclasspath/p:classes". >>> What does that entail? >>> >>> Currently, there is no explicit artifact that is identifiable as >>> "hybrid-1" or "hybrid-2" javac. Instead, the langtools part of the >>> build delivers a set of classes, to be used as part of a hybrid >>> javac, and each downstream repository in the forest uses those >>> classes with -J-Xbootclasspath to synthesize the hybrid javac. So, >>> there are two sets of changes to be made. >>> - The langtools repository must determine if it has been given a >>> legacy JDK or a modular JDK for its bootstrap. If it has been given >>> a modular JDK, it needs to create a module library to be used for >>> downstream compilations. >>> - All downstream builds need to determine if they have been given a >>> legacy JDK or a modular JDK for their bootstrap, and so should >>> synthesize their hybrid javac using "-Xbootclasspath/p:classes" or >>> "-L library" (or rather, "-J-Xbootclasspath/p:classes" or "-J-L >>> -Jlibrary". Mild uugh!) >>> >>> Note that we cannot hard-code the change to use "-L library" through >>> the life of JDK7. In other words, for as long as we need to start >>> the build using a legacy JDK, such as JDK 6, the build must be >>> "bimodal", able to work with both a legacy JDK, or a modular JDK >>> such as may just have been built. >>> >>> The changes to have the langtools repository build a module library >>> are essentially as described here: >>> >>> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-May/000960.html >>> >>> However, the changes described there concerned a developer build of >>> javac; the changes need to be replicated to apply to the bootstrap >>> builds as well. This corresponds to langtools having settings for >>> two different versions of JDK -- one to build with, and one to >>> execute what it builds: the langtools build needs to be prepared for >>> each setting to be given either a legacy JDK or a modular JDK. >>> >>> The changes to have each downstream repository determine whether to >>> use -Xbootclasspath or L are not particularly difficult. One minor >>> complication to take into account is that some repositories use Ant >>> instead of "make". Another complication is whether or not this >>> needs to be a synchronized build change across all repositories. One >>> way to avoid that would be a two phase approach, such that we first >>> change all repositories to explicitly force the use of legacy mode >>> for javac, then we can change the default mode for javac, then >>> finally update the repositories to work with the default. >>> >> >> I think the javac would have to stay in legacy mode for jdk build for >> some time until the jdk compiles classes in its module directory >> (i.e. setting -modulepath for javac to use). In step 4 & 8 >> (building jdk), the hybrid javac overrides the bootclasspath with the >> classes directory as it compiles itself. The module library for the >> jdk is created at the end of the jdk build. It can use -L option to >> set to use the langtools module library but it still needs a way to >> compile jdk sources with the newly built classes during the jdk build. > > Ah, but that's the "other" bootclasspath, isn't it? The hybrid > javac's are all about the use of the JVM bootclasspath, and changing > to set the JVM module library. Here, you're talking about the javac > bootclasspath and -L option. > That's right - that's the other bootclasspath! JDK will continue to compile in single module mode (i.e. legacy compilation) with javac's -Xbootclasspath option. javac will run with the latest langtools classes via the JVM bootclasspath or JVM module library (the -J version). I clearly mixed them up when I first read this but now it's clear. Thanks. > >> >> What steps would you imagine it takes to update the langtools repo to >> work with the default? I guess langtools can remain being compiled >> in single module mode using the -sourcepath option? It doesn't >> require langtools to be compiled as modules for phase 2. I try to >> put things together in my head - do I get this right? >> >>> That's almost it. You'd think. >>> >>> If only it were that simple ... >>> >>> Who spotted that sometimes developers perform "partial builds" and >>> don't necessarily use and build a copy of the langtools repository? >>> Instead, you can set ALT_JDK_IMPORT_PATH to a recent build of JDK. >>> So yes, we need to make the build work in that case as well. And, >>> for now, that is left as an exercise for the reader. >>> >> >> That's a good point. If ALT_JDK_IMPORT_PATH would be a modular JDK, >> the current workaround is to copy classes directly from the imported >> module library. The jdk makefiles have be modified to import corba, >> jaxp and jaxws from a modular JDK but yet to import langtools correctly. > > Hmmm, yes, I was just thinking of the javac bootstrap issues; I > missed the need to import classes from the ALT_JDK_IMPORT_PATH. > >> >> In the long-term, I think the jdk build would import from the >> langtools module files (and other components) from a promoted build >> rather than a module image. > > What is the difference that you're thinking of here? > It's related to the jdk partial build issue and how it should import components in the modular world. I wanted to point it out as langtools will be building jmod files that would work well in the future. ALT_JDK_IMPORT_PATH refers to a JDK image. In the legacy world, we build only the legacy image and thus we can only import from a JDK image (that's ALT_JDK_IMPORT_PATH). In the modular world, we will bundle the jdk module files in addition to the jre-base-image. For doing a partial jdk build (no langtools build), some time later the jdk build should support to import from the jdk module files (e.g. javac.jmod, corba.jmod, etc). > > > In the short term, my plan is to push changes that will have the > langtools build create modules from the langtools bootstrap classes > for optional use downstream if desired. We can then work on > determining how to use those modules in the downstream repos. > Sounds good. Mandy From mr at sun.com Wed May 26 10:33:42 2010 From: mr at sun.com (Mark Reinhold) Date: Wed, 26 May 2010 10:33:42 -0700 Subject: Failing jpkg test Message-ID: <20100526173342.F2E0946B@eggemoggin.niobe.net> The unit test org/openjdk/jigsaw/cli/JpkgArgsTest.java is failing for me on a full build of the current Jigsaw forest (linux-i586, though I doubt it matters). Log attached below. It looks like the testIfFileArgIsEmpty method needs to catch and supress the exception that's thrown, just like the other testIf* methods. - Mark -- Test: Check if module path argument exists Test: Check if module path argument is not a directory Test: Check if module path argument is not readable Test: Check if absolute resource path argument is accepted Test: NPE if file argument does not exist: Test: NPE if file argument is not a directory: Test: NPE if file argument is not readable: Test: IOException if file argument is an empty directory: Test: NPE if file argument does not exist: --config Test: NPE if file argument is not a directory: --config Test: NPE if file argument is not readable: --config Test: IOException if file argument is an empty directory: --config java.io.IOException: Path is empty: tmp/src/config at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:245) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:185) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeOptionalSections(ModuleFileFormat.java:505) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:151) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:230) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:171) at org.openjdk.jigsaw.cli.Command.run(Command.java:97) at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:1112) at org.openjdk.jigsaw.cli.Packager.run(Packager.java:856) at JpkgArgsTest.compress(JpkgArgsTest.java:345) at JpkgArgsTest.testIfFileArgIsEmpty(JpkgArgsTest.java:174) at JpkgArgsTest.test(JpkgArgsTest.java:291) at JpkgArgsTest.run(JpkgArgsTest.java:47) at JpkgArgsTest.main(JpkgArgsTest.java:42) org.openjdk.jigsaw.cli.Command$Exception: I/O error: Path is empty: tmp/src/config at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:235) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:171) at org.openjdk.jigsaw.cli.Command.run(Command.java:97) at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:1112) at org.openjdk.jigsaw.cli.Packager.run(Packager.java:856) at JpkgArgsTest.compress(JpkgArgsTest.java:345) at JpkgArgsTest.testIfFileArgIsEmpty(JpkgArgsTest.java:174) at JpkgArgsTest.test(JpkgArgsTest.java:291) at JpkgArgsTest.run(JpkgArgsTest.java:47) at JpkgArgsTest.main(JpkgArgsTest.java:42) Caused by: java.io.IOException: Path is empty: tmp/src/config at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:245) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:185) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeOptionalSections(ModuleFileFormat.java:505) at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:151) at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:230) ... 9 more Exception in thread "main" java.lang.Exception: 1/12 tests failed at JpkgArgsTest.run(JpkgArgsTest.java:57) at JpkgArgsTest.main(JpkgArgsTest.java:42) From jonathan.gibbons at oracle.com Wed May 26 13:11:29 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 26 May 2010 13:11:29 -0700 Subject: Failing jpkg test In-Reply-To: <20100526173342.F2E0946B@eggemoggin.niobe.net> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> Message-ID: <4BFD8071.5000204@oracle.com> I'm also seeing this exception on empty resources directories, which was previously reported, and fixed. This exception is breaking the langtools build. I'm working around it by adding dummy files to make the directory non-empty. > [exec] Creating module file sun.langtools at 7-ea.jmod for sun.langtools > [exec] java.io.IOException: Path is empty: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/sun.langtools/resources > [exec] at > org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:245) > [exec] at > org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:185) > [exec] at > org.openjdk.jigsaw.ModuleFileFormat$Writer.writeOptionalSections(ModuleFileFormat.java:490) > [exec] at > org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:151) > [exec] at > org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:230) > [exec] at > org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:171) > [exec] at org.openjdk.jigsaw.cli.Command.run(Command.java:97) > [exec] at > org.openjdk.jigsaw.cli.Packager.exec(Packager.java:1112) > [exec] at org.openjdk.jigsaw.cli.Packager.run(Packager.java:856) > [exec] at > org.openjdk.jigsaw.cli.Packager.main(Packager.java:1183) > [exec] I/O error: Path is empty: > /w/jjg/work/jigsaw/jigsaw.lt/build/modules/sun.langtools/resources > -- Jon On 05/26/2010 10:33 AM, Mark Reinhold wrote: > The unit test org/openjdk/jigsaw/cli/JpkgArgsTest.java is failing for me > on a full build of the current Jigsaw forest (linux-i586, though I doubt > it matters). Log attached below. > > It looks like the testIfFileArgIsEmpty method needs to catch and supress > the exception that's thrown, just like the other testIf* methods. > > - Mark > > -- > Test: Check if module path argument exists > Test: Check if module path argument is not a directory > Test: Check if module path argument is not readable > Test: Check if absolute resource path argument is accepted > Test: NPE if file argument does not exist: > Test: NPE if file argument is not a directory: > Test: NPE if file argument is not readable: > Test: IOException if file argument is an empty directory: > Test: NPE if file argument does not exist: --config > Test: NPE if file argument is not a directory: --config > Test: NPE if file argument is not readable: --config > Test: IOException if file argument is an empty directory: --config > java.io.IOException: Path is empty: tmp/src/config > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:245) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:185) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeOptionalSections(ModuleFileFormat.java:505) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:151) > at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:230) > at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:171) > at org.openjdk.jigsaw.cli.Command.run(Command.java:97) > at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:1112) > at org.openjdk.jigsaw.cli.Packager.run(Packager.java:856) > at JpkgArgsTest.compress(JpkgArgsTest.java:345) > at JpkgArgsTest.testIfFileArgIsEmpty(JpkgArgsTest.java:174) > at JpkgArgsTest.test(JpkgArgsTest.java:291) > at JpkgArgsTest.run(JpkgArgsTest.java:47) > at JpkgArgsTest.main(JpkgArgsTest.java:42) > org.openjdk.jigsaw.cli.Command$Exception: I/O error: Path is empty: tmp/src/config > at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:235) > at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:171) > at org.openjdk.jigsaw.cli.Command.run(Command.java:97) > at org.openjdk.jigsaw.cli.Packager.exec(Packager.java:1112) > at org.openjdk.jigsaw.cli.Packager.run(Packager.java:856) > at JpkgArgsTest.compress(JpkgArgsTest.java:345) > at JpkgArgsTest.testIfFileArgIsEmpty(JpkgArgsTest.java:174) > at JpkgArgsTest.test(JpkgArgsTest.java:291) > at JpkgArgsTest.run(JpkgArgsTest.java:47) > at JpkgArgsTest.main(JpkgArgsTest.java:42) > Caused by: java.io.IOException: Path is empty: tmp/src/config > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeFile(ModuleFileFormat.java:245) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeSection(ModuleFileFormat.java:185) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeOptionalSections(ModuleFileFormat.java:505) > at org.openjdk.jigsaw.ModuleFileFormat$Writer.writeModule(ModuleFileFormat.java:151) > at org.openjdk.jigsaw.cli.Packager$Jmod.go(Packager.java:230) > ... 9 more > Exception in thread "main" java.lang.Exception: 1/12 tests failed > at JpkgArgsTest.run(JpkgArgsTest.java:57) > at JpkgArgsTest.main(JpkgArgsTest.java:42) > From sean.mullan at oracle.com Wed May 26 15:02:55 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 26 May 2010 18:02:55 -0400 Subject: Code Review Request: running signed modules with SecurityManager Message-ID: <4BFD9A8F.5040908@oracle.com> Please review the webrev below which contains code changes that add support for running signed modules with a SecurityManager. http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ Thanks, Sean From forax at univ-mlv.fr Wed May 26 15:59:05 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Thu, 27 May 2010 00:59:05 +0200 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFD9A8F.5040908@oracle.com> References: <4BFD9A8F.5040908@oracle.com> Message-ID: <4BFDA7B9.8040906@univ-mlv.fr> Le 27/05/2010 00:02, Sean Mullan a ?crit : > Please review the webrev below which contains code changes that add > support for running signed modules with a SecurityManager. > > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ > > > Thanks, > Sean In Loader.java, you should declare the two maps and the sets final. In SimpleLibrary.readLocalCodeSigners, if the file is removed between f.exists() and new FileInputstream, instead of returning null, you throw an IOException, furthermore, reading the doc of Library.readLocalCodeSigners, it's far from than than you can returns an array of signers with one element which is null. I would prefer to directly get null in that cases or a better documentation. In Packager, outptuFile.delete() can returns false. A more general question but perhaps for Mark or Alan, why jigsaw codebase use java.io.file and not java.nio.file ? R?mi From sean.mullan at oracle.com Thu May 27 08:09:05 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 27 May 2010 11:09:05 -0400 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFDA7B9.8040906@univ-mlv.fr> References: <4BFD9A8F.5040908@oracle.com> <4BFDA7B9.8040906@univ-mlv.fr> Message-ID: <4BFE8B11.7010209@oracle.com> On 5/26/10 6:59 PM, R?mi Forax wrote: > Le 27/05/2010 00:02, Sean Mullan a ?crit : >> Please review the webrev below which contains code changes that add >> support for running signed modules with a SecurityManager. >> >> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ >> >> >> Thanks, >> Sean > > In Loader.java, you should declare the two maps and the sets final. ok. > In SimpleLibrary.readLocalCodeSigners, > if the file is removed between f.exists() and > new FileInputstream, instead of returning null, you throw an IOException, Hmm, but there is no way for that to happen unless the library data is being modified maliciously or accidentally. > furthermore, reading the doc of Library.readLocalCodeSigners, > it's far from than than you can returns an array of signers with one > element > which is null. > I would prefer to directly get null in that cases or a better > documentation. I don't see this. Can you explain a little more how an array of signers with one element which is null can be returned? > In Packager, outptuFile.delete() can returns false. Correct. In that case, I will probably change the code to throw an IOException, and set the cause to the exception of the try/catch block. > A more general question but perhaps for Mark or Alan, > why jigsaw codebase use java.io.file and not java.nio.file ? I'll defer to Mark or Alan on that question. Thanks, Sean From mandy.chung at oracle.com Thu May 27 10:28:50 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 27 May 2010 10:28:50 -0700 Subject: Review request: include US_export_policy.jar and local_policy.jar Message-ID: <4BFEABD2.2010102@oracle.com> Webrev at: http://cr.openjdk.java.net/~mchung/jigsaw/export-policy-jars/ The current JCE implementation checks the existence of US_export_policy.jar and local_policy.jar and throws exception if not exist. A number of security jtreg tests failed due to such failure. This fix will copy US_export_policy.jar and local_policy.jar in the module-image as a short term solution so as to allows more tests to run to verify the module-image. When signed modules are fully supported, US_export_policy and local_policy will be converted to signed modules to replace these jars in the module-image. Comparing the number of jdk_security3 failures: Before the fix: TEST STATS: run=363 pass=226 fail=137 excluded=26 After the fix: TEST STATS: run=363 pass=349 fail=14 excluded=26 Without these 2 policy jars, the exception looks like this: Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism at javax.crypto.JceSecurity.(JceSecurity.java:86) ... 38 more Caused by: java.lang.SecurityException: Cannot locate policy or framework files! at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:254) at javax.crypto.JceSecurity.access$000(JceSecurity.java:48) at javax.crypto.JceSecurity$1.run(JceSecurity.java:78) at java.security.AccessController.doPrivileged(Native Method) at javax.crypto.JceSecurity.(JceSecurity.java:76) Thanks Mandy From mjw at redhat.com Thu May 27 11:29:34 2010 From: mjw at redhat.com (Mark Wielaard) Date: Thu, 27 May 2010 20:29:34 +0200 Subject: Review request: include US_export_policy.jar and local_policy.jar In-Reply-To: <4BFEABD2.2010102@oracle.com> References: <4BFEABD2.2010102@oracle.com> Message-ID: <1274984974.2442.8.camel@hermans.wildebeest.org> On Thu, 2010-05-27 at 11:25 -0700, jigsaw-dev-bounces at openjdk.java.net wrote: > "Non-members are not allowed to post messages to this list." Hohum, how inconvenient. So subscribed and reposted. On Thu, 2010-05-27 at 10:28 -0700, Mandy Chung wrote: > The current JCE implementation checks the existence of > US_export_policy.jar and local_policy.jar and throws exception if not > exist. A number of security jtreg tests failed due to such failure. bugs.openjdk.java.net seems to still be down, but there is a crypto cleanup patch that makes this unnecessary in there: https://bugs.openjdk.java.net/show_bug.cgi?id=100062 It has been discussed on the mailinglists a couple of times: http://mail.openjdk.java.net/pipermail/security-dev/2008-August/000283.html http://mail.openjdk.java.net/pipermail/security-dev/2008-September/000329.html http://mail.openjdk.java.net/pipermail/security-dev/2008-November/000385.html IcedTea has this applied since some years now and so is carried on the various GNU/Linux distros: http://icedtea.classpath.org/hg/icedtea6/file/tip/patches/icedtea-clean-crypto.patch Cheers, Mark From mandy.chung at oracle.com Thu May 27 11:42:23 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 27 May 2010 11:42:23 -0700 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFD9A8F.5040908@oracle.com> References: <4BFD9A8F.5040908@oracle.com> Message-ID: <4BFEBD0F.6090200@oracle.com> On 05/26/10 15:02, Sean Mullan wrote: > Please review the webrev below which contains code changes that add support for > running signed modules with a SecurityManager. > > http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ > > Some minor comments: ModuleClassLoader.java Should the defineModule method take a CodeSource parameter? Library.java: line 355: I wonder if the returned type should prefer Set to an array while the existing methods such as JarEntry.getCodeSigners return CodeSigner[]? Loader.java: line 196: Are we going to create a CodeSource object with a non-null URL some time? SimpleLibrary.java line 540: When CNFE is thrown, I think AssertionError or InternalError is more appropriate. Packager.java line 237, 242 - you can use Files.delete(() that will throw IOException if it fails to delete the file. Mandy From mandy.chung at oracle.com Thu May 27 12:33:36 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 27 May 2010 12:33:36 -0700 Subject: Review request: include US_export_policy.jar and local_policy.jar In-Reply-To: <1274984576.2442.6.camel@hermans.wildebeest.org> References: <4BFEABD2.2010102@oracle.com> <1274984576.2442.6.camel@hermans.wildebeest.org> Message-ID: <4BFEC910.1010406@oracle.com> On 05/27/10 11:22, Mark Wielaard wrote: > On Thu, 2010-05-27 at 10:28 -0700, Mandy Chung wrote: > >> The current JCE implementation checks the existence of >> US_export_policy.jar and local_policy.jar and throws exception if not >> exist. A number of security jtreg tests failed due to such failure. >> > > bugs.openjdk.java.net seems to still be down, but there is a crypto > cleanup patch that makes this unnecessary in there: > https://bugs.openjdk.java.net/show_bug.cgi?id=100062 > > It has been discussed on the mailinglists a couple of times: > http://mail.openjdk.java.net/pipermail/security-dev/2008-August/000283.html > http://mail.openjdk.java.net/pipermail/security-dev/2008-September/000329.html > http://mail.openjdk.java.net/pipermail/security-dev/2008-November/000385.html > > IcedTea has this applied since some years now and so is carried on the > various GNU/Linux distros: > http://icedtea.classpath.org/hg/icedtea6/file/tip/patches/icedtea-clean-crypto.patch > > Thanks for the pointer. I'll defer to the security team to comment on your patch. Fixes in the jdk7 will be pulled to jigsaw from time to time. When my fix to the jdk modularization becomes unnecessary (either integrating your patch or due to some other way), I'll definitely update accordingly. Mandy From sean.mullan at oracle.com Thu May 27 12:37:10 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 27 May 2010 15:37:10 -0400 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFEBD0F.6090200@oracle.com> References: <4BFD9A8F.5040908@oracle.com> <4BFEBD0F.6090200@oracle.com> Message-ID: <4BFEC9E6.2080901@oracle.com> On 5/27/10 2:42 PM, Mandy Chung wrote: > On 05/26/10 15:02, Sean Mullan wrote: > >> Please review the webrev below which contains code changes that add >> support for running signed modules with a SecurityManager. >> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ >> > Some minor comments: > > ModuleClassLoader.java > Should the defineModule method take a CodeSource parameter? This is a really good question. I actually considered that, and also changing the Module API to have a CodeSource object (i.e. Module.getCodeSource()). This would avoid maintaining the HashMap of ModuleIds to CodeSources in Loader. I didn't think it was strictly necessary, but I guess I would like to get your opinion whether you think that would be a preferable design? > Library.java: > line 355: I wonder if the returned type should prefer Set > to an array while the existing methods such as JarEntry.getCodeSigners > return CodeSigner[]? The reason I chose CodeSigner[] instead of Set is that this needs to be passed to the CodeSource constructor which currently takes a CodeSigner[]. So I wanted to avoid the Set.toArray conversion. > Loader.java: > line 196: Are we going to create a CodeSource object with a non-null > URL some time? Another good question. This is currently an open issue. In order to address this I think that we would need to retain the codebase URL of the module and store it in the library. > SimpleLibrary.java > line 540: When CNFE is thrown, I think AssertionError or InternalError > is more appropriate. ok. > > Packager.java > line 237, 242 - you can use Files.delete(() that will throw IOException > if it fails to delete the file. ok. Thanks, Sean From sean.mullan at oracle.com Thu May 27 12:42:30 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 27 May 2010 15:42:30 -0400 Subject: Review request: include US_export_policy.jar and local_policy.jar In-Reply-To: <4BFEABD2.2010102@oracle.com> References: <4BFEABD2.2010102@oracle.com> Message-ID: <4BFECB26.3000903@oracle.com> The Makefile changes look ok to me. Vinnie is starting to work on fixing this with signed modules, so you may want to see if he has any comments before pushing. --Sean On 5/27/10 1:28 PM, Mandy Chung wrote: > Webrev at: > http://cr.openjdk.java.net/~mchung/jigsaw/export-policy-jars/ > > The current JCE implementation checks the existence of > US_export_policy.jar and local_policy.jar and throws exception if not > exist. A number of security jtreg tests failed due to such failure. > > This fix will copy US_export_policy.jar and local_policy.jar in the > module-image as a short term solution so as to allows more tests to run > to verify the module-image. When signed modules are fully supported, > US_export_policy and local_policy will be converted to signed modules to > replace these jars in the module-image. > > Comparing the number of jdk_security3 failures: > Before the fix: TEST STATS: run=363 pass=226 fail=137 excluded=26 > After the fix: TEST STATS: run=363 pass=349 fail=14 excluded=26 > > Without these 2 policy jars, the exception looks like this: > > Caused by: java.lang.SecurityException: Can not initialize cryptographic > mechanism > at javax.crypto.JceSecurity.(JceSecurity.java:86) > ... 38 more > Caused by: java.lang.SecurityException: Cannot locate policy or > framework files! > at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:254) > at javax.crypto.JceSecurity.access$000(JceSecurity.java:48) > at javax.crypto.JceSecurity$1.run(JceSecurity.java:78) > at java.security.AccessController.doPrivileged(Native Method) > at javax.crypto.JceSecurity.(JceSecurity.java:76) > > Thanks > Mandy From jonathan.gibbons at oracle.com Thu May 27 14:33:35 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 27 May 2010 14:33:35 -0700 Subject: 2 jmod RFEs Message-ID: <4BFEE52F.6080600@oracle.com> With classpaths, it is reasonably easy to determine if a class is on the classpath. In the extreme case, I can write myself a script to do it. With modules, it is not so easy. It would help to have the following two queries available: -- which module(s) contains a specified class? -- if I were to "require" a specific module, would a specified class be visible? -- Jon From Dalibor.Topic at Sun.COM Thu May 27 14:40:19 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Thu, 27 May 2010 23:40:19 +0200 Subject: Failing jpkg test In-Reply-To: <20100526173342.F2E0946B@eggemoggin.niobe.net> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> Message-ID: <4BFEE6C3.7040105@sun.com> Mark Reinhold wrote: > The unit test org/openjdk/jigsaw/cli/JpkgArgsTest.java is failing for me > on a full build of the current Jigsaw forest (linux-i586, though I doubt > it matters). Log attached below. I have run into some trouble trying to reproduce this manually: topic at topic-laptop:/media/JIGSAW/work/test/resources$ time jtreg -verbose:all -jdk:/media/JIGSAW/work/jigsaw-args/build/linux-i586/jdk-module-image/ /media/JIGSAW/work/jigsaw-args/jdk/test/org/openjdk/jigsaw/cli/JpkgArgsTest.java java.lang.IllegalStateException at com.sun.javatest.TestResult.setTestDescription(TestResult.java:1882) at com.sun.javatest.TestResultTable.getCachedResult(TestResultTable.java:2182) at com.sun.javatest.TRT_TreeNode.processFile(TRT_TreeNode.java:1105) at com.sun.javatest.TRT_TreeNode.scanIfNeeded(TRT_TreeNode.java:642) at com.sun.javatest.TRT_TreeNode.getTreeNode(TRT_TreeNode.java:454) at com.sun.javatest.TestResultTable.findNode(TestResultTable.java:1155) at com.sun.javatest.TestResultTable.findNode(TestResultTable.java:1159) at com.sun.javatest.TestResultTable.findNode(TestResultTable.java:1159) at com.sun.javatest.TestResultTable.findNode(TestResultTable.java:1159) at com.sun.javatest.TestResultTable.findNode(TestResultTable.java:1159) at com.sun.javatest.TestResultTable.lookupNode(TestResultTable.java:2013) at com.sun.javatest.TestResultTable.lookupInitURL(TestResultTable.java:2051) at com.sun.javatest.TestResultTable.validatePath(TestResultTable.java:633) at com.sun.javatest.interview.TestsInterview.validateTests(TestsInterview.java:407) at com.sun.javatest.interview.TestsInterview.access$300(TestsInterview.java:57) at com.sun.javatest.interview.TestsInterview$6.getNext(TestsInterview.java:364) at com.sun.interview.Interview.predictNext(Interview.java:2310) at com.sun.interview.Interview.predictPath(Interview.java:2274) at com.sun.interview.Interview.updatePath0(Interview.java:2172) at com.sun.interview.Interview.updatePath(Interview.java:2145) at com.sun.interview.Interview.reset(Interview.java:669) at com.sun.interview.Interview.ensurePathInitialized(Interview.java:2102) at com.sun.interview.Interview.isFinishable(Interview.java:882) at com.sun.javatest.InterviewParameters.isValid(InterviewParameters.java:556) at com.sun.javatest.regtest.Main.createParameters(Main.java:1519) at com.sun.javatest.regtest.Main.run(Main.java:979) at com.sun.javatest.regtest.Main.run(Main.java:877) at com.sun.javatest.regtest.Main.main(Main.java:821) cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From Dalibor.Topic at Sun.COM Thu May 27 14:44:41 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Thu, 27 May 2010 23:44:41 +0200 Subject: Failing jpkg test In-Reply-To: <4BFEE6C3.7040105@sun.com> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> <4BFEE6C3.7040105@sun.com> Message-ID: <4BFEE7C9.7030808@sun.com> Dalibor Topic wrote: > Mark Reinhold wrote: >> The unit test org/openjdk/jigsaw/cli/JpkgArgsTest.java is failing for me >> on a full build of the current Jigsaw forest (linux-i586, though I doubt >> it matters). Log attached below. > > I have run into some trouble trying to reproduce this manually: > > topic at topic-laptop:/media/JIGSAW/work/test/resources$ time jtreg > -verbose:all > -jdk:/media/JIGSAW/work/jigsaw-args/build/linux-i586/jdk-module-image/ > /media/JIGSAW/work/jigsaw-args/jdk/test/org/openjdk/jigsaw/cli/JpkgArgsTest.java > > > java.lang.IllegalStateException > at com.sun.javatest.TestResult.setTestDescription(TestResult.java:1882) Purging left over residue from testing from the directory I ran jtreg from fixed that one. Moving on to fix the actual bug ;) cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From dalibor.topic at sun.com Thu May 27 15:21:39 2010 From: dalibor.topic at sun.com (dalibor.topic at sun.com) Date: Thu, 27 May 2010 22:21:39 +0000 Subject: hg: jigsaw/jigsaw/jdk: (module file format) Adapted and reapplied fix for empty directories Message-ID: <20100527222202.EC1AB46E4D@hg.openjdk.java.net> Changeset: e18906a151fd Author: robilad Date: 2010-05-28 00:20 +0200 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e18906a151fd (module file format) Adapted and reapplied fix for empty directories ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java From Dalibor.Topic at Sun.COM Thu May 27 15:26:57 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 28 May 2010 00:26:57 +0200 Subject: Failing jpkg test In-Reply-To: <4BFEE7C9.7030808@sun.com> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> <4BFEE6C3.7040105@sun.com> <4BFEE7C9.7030808@sun.com> Message-ID: <4BFEF1B1.5010400@sun.com> Fixed by http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e18906a151fd - which is a slightly adapted version of http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fbc1dd5878b3 , which fell on the cutting room floor as part of a small refactoring in http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ced4f3b0ff58 That fixes the empty resource dir issue again Jon reported as well, I believe. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From jonathan.gibbons at oracle.com Thu May 27 15:41:54 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 27 May 2010 15:41:54 -0700 Subject: jpkg RFE Message-ID: <4BFEF532.5060002@oracle.com> It is a pain to have to create separate classes/ and resources/ directories for jpkg, since existing practice is to make a single directory for both. I won't argue against whatever reason it was thought useful to allow them to be separate, but it would be helpful if there was a default such that (say) if the resource directory was not specified, it was assumed to be the same as the classes directory. Classes are files matching *.class, resources are files not matching *.class. I could cross out a whole lot of Ant stuff splitting the files into two separate directories if we could allow them to be the same. -- Jon From Dalibor.Topic at Sun.COM Thu May 27 15:46:34 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 28 May 2010 00:46:34 +0200 Subject: jpkg RFE In-Reply-To: <4BFEF532.5060002@oracle.com> References: <4BFEF532.5060002@oracle.com> Message-ID: <4BFEF64A.40609@sun.com> Jonathan Gibbons wrote: > It is a pain to have to create separate classes/ and resources/ > directories for jpkg, since existing practice is to make a single > directory for both. > > I won't argue against whatever reason it was thought useful to allow > them to be separate, but it would be helpful if there was a default such > that (say) if the resource directory was not specified, it was assumed > to be the same as the classes directory. Classes are files matching > *.class, resources are files not matching *.class. Sounds fine to me. I'll write up a small patch and post it to the list. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From mark.reinhold at oracle.com Thu May 27 16:15:33 2010 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Thu, 27 May 2010 16:15:33 -0700 Subject: jpkg RFE In-Reply-To: dalibor.topic@sun.com; Fri, 28 May 2010 00:46:34 +0200; <4BFEF64A.40609@sun.com> Message-ID: <20100527231533.237FA2AE@eggemoggin.niobe.net> > Date: Fri, 28 May 2010 00:46:34 +0200 > From: dalibor.topic at sun.com > Sounds fine to me. I'll write up a small patch and post it to the > list. Yes, please do. - Mark From forax at univ-mlv.fr Thu May 27 17:13:13 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 28 May 2010 02:13:13 +0200 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFE8B11.7010209@oracle.com> References: <4BFD9A8F.5040908@oracle.com> <4BFDA7B9.8040906@univ-mlv.fr> <4BFE8B11.7010209@oracle.com> Message-ID: <4BFF0A99.6010604@univ-mlv.fr> Le 27/05/2010 17:09, Sean Mullan a ?crit : > On 5/26/10 6:59 PM, R?mi Forax wrote: >> Le 27/05/2010 00:02, Sean Mullan a ?crit : >>> Please review the webrev below which contains code changes that add >>> support for running signed modules with a SecurityManager. >>> >>> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.00/ >>> >>> >>> >>> Thanks, >>> Sean >> >> In Loader.java, you should declare the two maps and the sets final. > > ok. > >> In SimpleLibrary.readLocalCodeSigners, >> if the file is removed between f.exists() and >> new FileInputstream, instead of returning null, you throw an >> IOException, > > Hmm, but there is no way for that to happen unless the library data is > being modified maliciously or accidentally. My question was more, is it the intended behavior ? > >> furthermore, reading the doc of Library.readLocalCodeSigners, >> it's far from than than you can returns an array of signers with one >> element >> which is null. >> I would prefer to directly get null in that cases or a better >> documentation. > > I don't see this. Can you explain a little more how an array of > signers with one element which is null can be returned? My bad. I've seen that variable signer is initialized with null which is not necessary. > >> In Packager, outptuFile.delete() can returns false. > > Correct. In that case, I will probably change the code to throw an > IOException, and set the cause to the exception of the try/catch block. > >> A more general question but perhaps for Mark or Alan, >> why jigsaw codebase use java.io.file and not java.nio.file ? > > I'll defer to Mark or Alan on that question. > > Thanks, > Sean R?mi From vincent.x.ryan at oracle.com Fri May 28 01:47:18 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Fri, 28 May 2010 09:47:18 +0100 Subject: Failing jpkg test In-Reply-To: <4BFEF1B1.5010400@sun.com> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> <4BFEE6C3.7040105@sun.com> <4BFEE7C9.7030808@sun.com> <4BFEF1B1.5010400@sun.com> Message-ID: <4BFF8316.7060903@oracle.com> Sorry, I must have mis-merged your previous change Dalibor. Thanks for re-applying it. On 27/05/2010 23:26, Dalibor Topic wrote: > Fixed by http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/e18906a151fd > - which is a slightly adapted version of > http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/fbc1dd5878b3 , which > fell on the cutting room floor as part of a small refactoring in > http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/ced4f3b0ff58 > > That fixes the empty resource dir issue again Jon reported as well, I > believe. > > cheers, > dalibor topic From Dalibor.Topic at Sun.COM Fri May 28 07:04:57 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 28 May 2010 16:04:57 +0200 Subject: Failing jpkg test In-Reply-To: <4BFF8316.7060903@oracle.com> References: <20100526173342.F2E0946B@eggemoggin.niobe.net> <4BFEE6C3.7040105@sun.com> <4BFEE7C9.7030808@sun.com> <4BFEF1B1.5010400@sun.com> <4BFF8316.7060903@oracle.com> Message-ID: <4BFFCD89.1000004@sun.com> Vincent Ryan wrote: > Sorry, I must have mis-merged your previous change Dalibor. > Thanks for re-applying it. No worries - sorry for not catching it during review, but the regression test did find that one, fortunately. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From sean.mullan at oracle.com Fri May 28 08:13:27 2010 From: sean.mullan at oracle.com (Sean Mullan) Date: Fri, 28 May 2010 11:13:27 -0400 Subject: Code Review Request: running signed modules with SecurityManager In-Reply-To: <4BFF0A99.6010604@univ-mlv.fr> References: <4BFD9A8F.5040908@oracle.com> <4BFDA7B9.8040906@univ-mlv.fr> <4BFE8B11.7010209@oracle.com> <4BFF0A99.6010604@univ-mlv.fr> Message-ID: <4BFFDD97.6040901@oracle.com> On 5/27/10 8:13 PM, R?mi Forax wrote: >>> In SimpleLibrary.readLocalCodeSigners, >>> if the file is removed between f.exists() and >>> new FileInputstream, instead of returning null, you throw an >>> IOException, >> >> Hmm, but there is no way for that to happen unless the library data is >> being modified maliciously or accidentally. > > My question was more, is it the intended behavior ? Ok. TBD. I think this needs to be addressed as a more general issue of the Library implementation and what assumptions can or cannot be made about the data (integrity, concurrent access, etc). I'll add a comment for now that this needs to be looked at. Thanks, Sean From mr at sun.com Fri May 28 13:23:32 2010 From: mr at sun.com (Mark Reinhold) Date: Fri, 28 May 2010 13:23:32 -0700 Subject: Review request: Install module content into zip files In-Reply-To: mandy.chung@oracle.com; Mon, 24 May 2010 14:26:45 PDT; <4BFAEF15.80301@oracle.com> Message-ID: <20100528202332.1B57E4A2@eggemoggin.niobe.net> > Date: Mon, 24 May 2010 14:26:45 -0700 > From: mandy.chung at oracle.com > Mark Reinhold wrote: > > http://cr.openjdk.java.net/~mr/jigsaw/rev/zip-module-content/ > > Looks good. Thanks. I finally nailed down one last (I hope) build failure. The import logic in jdk/make/common/internal/ImportComponents.gmk needs to be updated to extract classes from jar files rather than than classes directories. Does the following look right to you? It works fine on Linux; I haven't yet tried it on other platforms but will do so later today. - Mark @@ -168,28 +168,16 @@ define import-from-modules-image if [ "$3" != "" ] ; then \ for m in $2 dummy ; do \ - mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION); \ - for p in $3 dummy ; do \ - if [ -d $$mdir/classes/$$p ] ; then \ - $(ECHO) "Importing $$p classes from $$m module" ; \ - $(MKDIR) -p $1/$$p; \ - $(CP) -r $$mdir/classes/$$p/* $1/$$p ; \ - elif [ -d $$mdir/resources/$$p ] ; then \ - $(ECHO) "Importing $$p resources from $$m module" ; \ - $(MKDIR) -p $1/$$p; \ - $(CP) -r $$mdir/resources/$$p/* $1/$$p ; \ - elif [ -f $$mdir/classes/$$p ] ; then \ - $(ECHO) "Importing $$p classes from $$m module" ; \ - pdir=`$(DIRNAME) $$p`; \ - $(MKDIR) -p $1/$$pdir; \ - $(CP) $$mdir/classes/$$p $1/$$pdir ; \ - elif [ -f $$mdir/resources/$$p ] ; then \ - $(ECHO) "Importing $$p resources from $$m module" ; \ - pdir=`$(DIRNAME) $$p`; \ - $(MKDIR) -p $1/$$pdir; \ - $(CP) $$mdir/resources/$$p $1/$$pdir ; \ - fi ; \ - done ; \ + mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ + if [ -f $$mdir/classes ] ; then \ + $(BOOT_JAR_CMD) tf $$mdir/classes >$(TEMPDIR)/$$m.ls ; \ + for p in $3 dummy ; do \ + if $(GREP) $$p $(TEMPDIR)/$$m.ls >/dev/null; then \ + $(ECHO) "Importing $$p from module $$m" ; \ + (cd $1; $(BOOT_JAR_CMD) xvf $$mdir/classes $$p) ; \ + fi ; \ + done ; \ + fi; \ done ; \ fi endef From mandy.chung at oracle.com Fri May 28 14:08:59 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Fri, 28 May 2010 14:08:59 -0700 Subject: Review request: Install module content into zip files In-Reply-To: <20100528202332.1B57E4A2@eggemoggin.niobe.net> References: <20100528202332.1B57E4A2@eggemoggin.niobe.net> Message-ID: <4C0030EB.4080405@oracle.com> Mark Reinhold wrote: >> Date: Mon, 24 May 2010 14:26:45 -0700 >> From: mandy.chung at oracle.com >> > > >> Mark Reinhold wrote: >> >> http://cr.openjdk.java.net/~mr/jigsaw/rev/zip-module-content/ >> >> Looks good. >> > > Thanks. > > I finally nailed down one last (I hope) build failure. The import logic > in jdk/make/common/internal/ImportComponents.gmk needs to be updated to > extract classes from jar files rather than than classes directories. > Does the following look right to you? It works fine on Linux; I haven't > yet tried it on other platforms but will do so later today. > > > I missed the impacted build change in my review :( Sorry about that. I recently added make/modules/update_module.sh that also hardcodes the module library format. I can update it when this changeset is pushed to the jigsaw repo. > > @@ -168,28 +168,16 @@ > define import-from-modules-image > if [ "$3" != "" ] ; then \ > for m in $2 dummy ; do \ > - mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION); \ > - for p in $3 dummy ; do \ > - if [ -d $$mdir/classes/$$p ] ; then \ > - $(ECHO) "Importing $$p classes from $$m module" ; \ > - $(MKDIR) -p $1/$$p; \ > - $(CP) -r $$mdir/classes/$$p/* $1/$$p ; \ > - elif [ -d $$mdir/resources/$$p ] ; then \ > - $(ECHO) "Importing $$p resources from $$m module" ; \ > - $(MKDIR) -p $1/$$p; \ > - $(CP) -r $$mdir/resources/$$p/* $1/$$p ; \ > - elif [ -f $$mdir/classes/$$p ] ; then \ > - $(ECHO) "Importing $$p classes from $$m module" ; \ > - pdir=`$(DIRNAME) $$p`; \ > - $(MKDIR) -p $1/$$pdir; \ > - $(CP) $$mdir/classes/$$p $1/$$pdir ; \ > - elif [ -f $$mdir/resources/$$p ] ; then \ > - $(ECHO) "Importing $$p resources from $$m module" ; \ > - pdir=`$(DIRNAME) $$p`; \ > - $(MKDIR) -p $1/$$pdir; \ > - $(CP) $$mdir/resources/$$p $1/$$pdir ; \ > - fi ; \ > - done ; \ > + mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ > + if [ -f $$mdir/classes ] ; then \ > + $(BOOT_JAR_CMD) tf $$mdir/classes >$(TEMPDIR)/$$m.ls ; \ > + for p in $3 dummy ; do \ > + if $(GREP) $$p $(TEMPDIR)/$$m.ls >/dev/null; then \ > + $(ECHO) "Importing $$p from module $$m" ; \ > + (cd $1; $(BOOT_JAR_CMD) xvf $$mdir/classes $$p) ; \ > + fi ; \ > + done ; \ > + fi; \ > done ; \ > fi > endef > I think Unjar should do the work. Something like this: $(call Unjar,$1,$$mdir/classes,$3); Mandy From Dalibor.Topic at Sun.COM Fri May 28 14:21:48 2010 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 28 May 2010 23:21:48 +0200 Subject: jpkg RFE In-Reply-To: <20100527231533.237FA2AE@eggemoggin.niobe.net> References: <20100527231533.237FA2AE@eggemoggin.niobe.net> Message-ID: <4C0033EC.6030609@sun.com> Here's a small patch for review: http://cr.openjdk.java.net/~robilad/jpkg-resources-default/ * jpkg sets resources parameter to module path if no resources path is explicitly given. But of course, that's not enough, so we have to make sure that we only start writing a resource section if there are actually resources to be stuffed into a jmod file - i.e. the check whether the resource path is empty is not sufficient in that case, as the modulepath could be chock full of class files, with no other file in sight. So ... * module file format gets a utility method to check if a path contains files that are not class files. And to make that a bit easier * Files gets a few small helper methods to tell if a file name is a class name. Notable differences: this means that *.properties files that were up until now not necessarily picked up as a resource, if they were only in the classes/ dirs and not in the resources/ dirs, will now get a place in the resources section of a jmod file. I hope this fits what Jon had in mind, I'd appreciate a review while I go hack on the tests. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: J?rgen Kunz From mr at sun.com Fri May 28 14:40:16 2010 From: mr at sun.com (Mark Reinhold) Date: Fri, 28 May 2010 14:40:16 -0700 Subject: Review request: Install module content into zip files In-Reply-To: mandy.chung@oracle.com; Fri, 28 May 2010 14:08:59 PDT; <4C0030EB.4080405@oracle.com> Message-ID: <20100528214016.AFA464A2@eggemoggin.niobe.net> > Date: Fri, 28 May 2010 14:08:59 -0700 > From: mandy.chung at oracle.com > I recently added make/modules/update_module.sh that also > hardcodes the module library format. I can update it > when this changeset is pushed to the jigsaw repo. Okay. >> @@ -168,28 +168,16 @@ >> define import-from-modules-image >> ... >> + mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ >> + if [ -f $$mdir/classes ] ; then \ >> + $(BOOT_JAR_CMD) tf $$mdir/classes >$(TEMPDIR)/$$m.ls ; \ >> + for p in $3 dummy ; do \ >> + if $(GREP) $$p $(TEMPDIR)/$$m.ls >/dev/null; then \ >> + $(ECHO) "Importing $$p from module $$m" ; \ >> + (cd $1; $(BOOT_JAR_CMD) xvf $$mdir/classes $$p) ; \ >> + fi ; \ >> + done ; \ >> + fi; \ >> done ; \ >> fi >> endef > > I think Unjar should do the work. Something like this: > > $(call Unjar,$1,$$mdir/classes,$3); Okay, done, but as: $(call Unjar,$1,$$mdir/classes,$$p) Thanks, - Mark From mandy.chung at oracle.com Fri May 28 15:05:48 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Fri, 28 May 2010 15:05:48 -0700 Subject: Review request: Install module content into zip files In-Reply-To: <20100528214016.AFA464A2@eggemoggin.niobe.net> References: <20100528214016.AFA464A2@eggemoggin.niobe.net> Message-ID: <4C003E3C.1020206@oracle.com> Mark Reinhold wrote: >>> @@ -168,28 +168,16 @@ >>> define import-from-modules-image >>> ... >>> + mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ >>> + if [ -f $$mdir/classes ] ; then \ >>> + $(BOOT_JAR_CMD) tf $$mdir/classes >$(TEMPDIR)/$$m.ls ; \ >>> + for p in $3 dummy ; do \ >>> + if $(GREP) $$p $(TEMPDIR)/$$m.ls >/dev/null; then \ >>> + $(ECHO) "Importing $$p from module $$m" ; \ >>> + (cd $1; $(BOOT_JAR_CMD) xvf $$mdir/classes $$p) ; \ >>> + fi ; \ >>> + done ; \ >>> + fi; \ >>> done ; \ >>> fi >>> endef >>> >> I think Unjar should do the work. Something like this: >> >> $(call Unjar,$1,$$mdir/classes,$3); >> > > Okay, done, but as: $(call Unjar,$1,$$mdir/classes,$$p) > > I was thinking that we don't need to check if the package exists in the module. Instead, something like this: define import-from-modules-image if [ "$3" != "" ] ; then \ for m in $2 dummy ; do \ mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ if [ -f $$mdir/classes ] ; then \ $(call Unjar,$1,$$mdir/classes,$3); \ fi ; \ done ; \ fi endef Mandy From mark.reinhold at oracle.com Fri May 28 15:59:38 2010 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Fri, 28 May 2010 15:59:38 -0700 Subject: Review request: Install module content into zip files In-Reply-To: mandy.chung@oracle.com; Fri, 28 May 2010 15:05:48 PDT; <4C003E3C.1020206@oracle.com> Message-ID: <20100528225938.D0B434A2@eggemoggin.niobe.net> > Date: Fri, 28 May 2010 15:05:48 -0700 > From: mandy.chung at oracle.com > Mark Reinhold wrote: >> Okay, done, but as: $(call Unjar,$1,$$mdir/classes,$$p) > I was thinking that we don't need to check if the > package exists in the module. Instead, something like this: > > define import-from-modules-image > if [ "$3" != "" ] ; then \ > for m in $2 dummy ; do \ > mdir=$(JDK_MODULES_LIB)/$$m/$(VERSION) ; \ > if [ -f $$mdir/classes ] ; then \ > $(call Unjar,$1,$$mdir/classes,$3); \ > fi ; \ > done ; \ > fi > endef Ah, right -- that works, but only because jar is broken. Unlike tar it doesn't exit with an error if you ask it to extract something that doesn't exist in the archive. I'll go with your suggestion, since it does speed things up a little and we're extremely unlikely ever to fix the jar command to report such errors. - Mark From mandy.chung at oracle.com Fri May 28 19:35:24 2010 From: mandy.chung at oracle.com (Mandy Chung) Date: Fri, 28 May 2010 19:35:24 -0700 Subject: Review request: jdk jtreg testing with jdk-module-image Message-ID: <4C007D6C.7070107@oracle.com> Webrev: http://cr.openjdk.java.net/~mchung/jigsaw/jprt-jigsaw-tests/forest http://cr.openjdk.java.net/~mchung/jigsaw/jprt-jigsaw-tests/jdk/ With this fix, we can run the jdk test targets with the jdk-module-image from making jdk/test/Makefile or in a jprt job. This also adds a new jdk_jigsaw test target for testing module image. I add a new "modules" keyword and the test/Makefile will set the keyword to exclude modules tests if testing a legacy image. The java/lang/module and java/lang/reflect/Module jtreg tests are tagged with the new "modules" keyword since these tests are included in jdk_lang target and also jdk_jigsaw is included in the jprt test targets. test/ModulesProblemList.txt is intended for temporarily use. Some of the failures are known issues that should be fixed soon. Test statistics on linux-i586 about the new platform modules change: jdk_beans1 TEST STATS: run=49 pass=49 fail=0 excluded=8 jdk_beans2 TEST STATS: run=109 pass=109 fail=0 excluded=4 jdk_beans3 TEST STATS: run=132 pass=132 fail=0 excluded=1 jdk_io TEST STATS: run=244 pass=244 fail=0 excluded=88 jdk_jigsaw TEST STATS: run=27 pass=25 fail=2 excluded=0 jdk_lang TEST STATS: run=300 pass=300 fail=0 excluded=46 jdk_management1 TEST STATS: run=197 pass=196 fail=1 excluded=13 jdk_management2 TEST STATS: run=30 pass=29 fail=1 excluded=7 jdk_math TEST STATS: run=29 pass=29 fail=0 excluded=1 jdk_misc TEST STATS: run=319 pass=311 fail=8 excluded=37 jdk_net TEST STATS: run=270 pass=269 fail=1 excluded=72 jdk_nio1 TEST STATS: run=35 pass=35 fail=0 excluded=0 jdk_nio2 TEST STATS: run=146 pass=145 fail=1 excluded=18 jdk_nio3 TEST STATS: run=67 pass=67 fail=0 excluded=14 jdk_rmi TEST STATS: run=89 pass=88 fail=1 excluded=46 jdk_security1 TEST STATS: run=98 pass=98 fail=0 excluded=16 jdk_security2 TEST STATS: run=90 pass=90 fail=0 excluded=2 jdk_security3 TEST STATS: run=363 pass=349 fail=14 excluded=26 jdk_text TEST STATS: run=26 pass=26 fail=0 excluded=0 jdk_tools1 TEST STATS: run=135 pass=135 fail=0 excluded=0 jdk_tools2 TEST STATS: run=65 pass=58 fail=7 excluded=35 jdk_util TEST STATS: run=318 pass=316 fail=2 excluded=29 langtools_jtreg passed=1732 failed=2 Altogether 4830 test passed and 40 test failed. Mandy From vincent.x.ryan at oracle.com Sat May 29 04:00:02 2010 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Sat, 29 May 2010 12:00:02 +0100 Subject: Review request: include US_export_policy.jar and local_policy.jar In-Reply-To: <4BFECB26.3000903@oracle.com> References: <4BFEABD2.2010102@oracle.com> <4BFECB26.3000903@oracle.com> Message-ID: <4C00F3B2.40707@oracle.com> This change is good as an interim measure. Signed modules are now supported so we will migrate these policy files over the next few weeks. On 27/05/2010 20:42, Sean Mullan wrote: > The Makefile changes look ok to me. Vinnie is starting to work on fixing > this with signed modules, so you may want to see if he has any comments > before pushing. > > --Sean > > On 5/27/10 1:28 PM, Mandy Chung wrote: >> Webrev at: >> http://cr.openjdk.java.net/~mchung/jigsaw/export-policy-jars/ >> >> The current JCE implementation checks the existence of >> US_export_policy.jar and local_policy.jar and throws exception if not >> exist. A number of security jtreg tests failed due to such failure. >> >> This fix will copy US_export_policy.jar and local_policy.jar in the >> module-image as a short term solution so as to allows more tests to run >> to verify the module-image. When signed modules are fully supported, >> US_export_policy and local_policy will be converted to signed modules to >> replace these jars in the module-image. >> >> Comparing the number of jdk_security3 failures: >> Before the fix: TEST STATS: run=363 pass=226 fail=137 excluded=26 >> After the fix: TEST STATS: run=363 pass=349 fail=14 excluded=26 >> >> Without these 2 policy jars, the exception looks like this: >> >> Caused by: java.lang.SecurityException: Can not initialize cryptographic >> mechanism >> at javax.crypto.JceSecurity.(JceSecurity.java:86) >> ... 38 more >> Caused by: java.lang.SecurityException: Cannot locate policy or >> framework files! >> at >> javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:254) >> at javax.crypto.JceSecurity.access$000(JceSecurity.java:48) >> at javax.crypto.JceSecurity$1.run(JceSecurity.java:78) >> at java.security.AccessController.doPrivileged(Native Method) >> at javax.crypto.JceSecurity.(JceSecurity.java:76) >> >> Thanks >> Mandy From mr at sun.com Sat May 29 21:20:54 2010 From: mr at sun.com (mr at sun.com) Date: Sun, 30 May 2010 04:20:54 +0000 Subject: hg: jigsaw/jigsaw/jdk: Install module content into zip files Message-ID: <20100530042126.4516F46E9D@hg.openjdk.java.net> Changeset: 43e101bd28c2 Author: mr Date: 2010-05-29 21:19 -0700 URL: http://hg.openjdk.java.net/jigsaw/jigsaw/jdk/rev/43e101bd28c2 Install module content into zip files Reviewed-by: robilad, mchung ! make/common/internal/ImportComponents.gmk ! src/share/classes/org/openjdk/jigsaw/ClassInfo.java ! src/share/classes/org/openjdk/jigsaw/Files.java ! src/share/classes/org/openjdk/jigsaw/Library.java ! src/share/classes/org/openjdk/jigsaw/Loader.java ! src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java ! src/share/classes/org/openjdk/jigsaw/SimpleLibrary.java ! src/share/classes/org/openjdk/jigsaw/cli/Librarian.java ! src/share/classes/sun/rmi/rmic/BatchEnvironment.java ! test/org/openjdk/jigsaw/MockLibrary.java ! test/org/openjdk/jigsaw/cli/ModuleFormatTest01.java ! test/org/openjdk/jigsaw/resource.sh From Leonid.Mesnik at Sun.COM Mon May 31 09:00:22 2010 From: Leonid.Mesnik at Sun.COM (Leonid Mesnik) Date: Mon, 31 May 2010 20:00:22 +0400 Subject: The module versioning Message-ID: <1275321622.19729.201.camel@jack> Hi Could you please point me to description of module version format. I'm not able to sort out how to compare versions and use VersionQuery now. For example I was able to compile and install these libraries: However I don't know what should be correct order and what should be only first library selected for for "=1.1"? module jigsaw.library @ 1.1 { } module jigsaw.library @ 01.1 { } module jigsaw.library @ 1.10 { } module jigsaw.library @ 1.01 { } module jigsaw.library @ 1.1.0 { } module jigsaw.library @ 1.1.0.0 { } Thank you, Leonid From mr at sun.com Mon May 31 21:31:27 2010 From: mr at sun.com (Mark Reinhold) Date: Mon, 31 May 2010 21:31:27 -0700 Subject: The module versioning In-Reply-To: leonid.mesnik@sun.com; Mon, 31 May 2010 20:00:22 +0400; <1275321622.19729.201.camel@jack> Message-ID: <20100601043127.80456A66@eggemoggin.niobe.net> > Date: Mon, 31 May 2010 20:00:22 +0400 > From: leonid.mesnik at sun.com > Could you please point me to description of module version format. > I'm not able to sort out how to compare versions and use VersionQuery > now. http://cr.openjdk.java.net/~mr/jigsaw/api/org/openjdk/jigsaw/JigsawVersion.html http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version - Mark