From Ulf.Zibis at gmx.de Sat Oct 1 14:21:33 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Sat, 01 Oct 2011 23:21:33 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E862AB2.7090605@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> Message-ID: <4E87845D.2090908@gmx.de> Am 30.09.2011 22:46, schrieb Xueming Shen: > On 09/30/2011 07:09 AM, Ulf Zibis wrote: >>> >>> (1) new byte[]{(byte)0xE1, (byte)0x80, (byte)0x42} ---> CoderResult.malformedForLength(1) >>> It appears the Unicode Standard now explicitly recommends to return the malformed length 2, >>> what UTF-8 is doing now, for this scenario >> My idea behind was, that in case of malformed length 1 a consecutive call to the decode loop >> would again return another malformed length 1, to ensure 2 replacement chars in the output >> string. (Not sure, if that is expected in this corner case.) > > Unicode Standard's "best practices" D93a/b recommends to return 2 in this case. Can you please give me a link for D93a/a. I don't know, where to find it. > > >> 3. Consider additionally 6795537 - UTF_8$Decoder returns wrong results >> >> >> >>> I'm not sure I understand the suggested b1 < -0x3e patch, I don't see we can simply replace >>> ((b1 >> 5) == -2) with (b1 < -0x3e). >> You must see the b1 < -0x3e in combination with the following b1 < -0x20. ;-) >> >> But now I have a better "if...else if" switch. :-) >> - saves the shift operations >> - only 1 comparison per case >> - only 1 constant to load per case >> - helps compiler to benefit from 1 byte constants and op-codes >> - much better readable > > I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to 2009(?) because > the benchmark shows the "shift" version is slightly faster. IIRC this was only about a shift by multiples of 8 to ensure an 1-byte comparison of 16/32-byte values in the double/quad-byte charsets. > Do you have any number > shows any difference now. My non-scientific benchmark still suggests the "shift" > type is faster on -server vm, no significant difference on -client vm. > > ------------------ your new switch--------------- > (1) -server > Method Millis Ratio > Decoding 1b UTF-8 : 125 1.000 > Decoding 2b UTF-8 : 2558 20.443 > Decoding 3b UTF-8 : 3439 27.481 > Decoding 4b UTF-8 : 2030 16.221 > (2) -client > Decoding 1b UTF-8 : 335 1.000 > Decoding 2b UTF-8 : 1041 3.105 > Decoding 3b UTF-8 : 2245 6.694 > Decoding 4b UTF-8 : 1254 3.741 > > ------------------ existing "shift"--------------- > (1) -server > Decoding 1b UTF-8 : 134 1.000 > Decoding 2b UTF-8 : 1891 14.106 > Decoding 3b UTF-8 : 2934 21.886 > Decoding 4b UTF-8 : 2133 15.913 > (2) -client > Decoding 1b UTF-8 : 341 1.000 > Decoding 2b UTF-8 : 949 2.560 > Decoding 3b UTF-8 : 2321 6.255 > Decoding 4b UTF-8 : 1278 3.446 > Very interesting and surprising numbers! The most surprising is, that the client compiler generates faster code for 2..4-byte codes. I think, we should ask the HotSpot team for help. As the UTF-8 de/encoding is a very frequent task, HotSpot should provide compiled code as optimized best as possible for UTF-8 de/encoding. Another surprise is, that benchmark for 1b UTF-8 is not same for "new switch" and "shift" version, as the ASCII only loop is the same in both versions. To discover the miracle, why the"shift" version is little faster than the "new switch" version, it should be helpful, to see the disassembling of the HotSpot compiled code. A third version, using the "(b1 & 0xe0) == 0xc0"/"(b1 & 0xf0) == 0xe0"/"(b1 & 0xf8) == 0xf0" pattern, should be interesting toofor the benchmark comparison. In my opinion it would be more significant to compare x 1..4-byte codes than y bytes of 1..4-byte codes. I.e. 1000 bytes of 1-byte codes against 2000 bytes of 2-byte codes against 3000 bytes of 3-byte codes against 4000 bytes of 4-byte codes We should document somewhere, that the ESU-8 decoder is faster than the strong UTF-8 decoder for developers, who can ensure, that there are no invalid surrogates in their source bytes. -Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111001/79698adc/attachment.html From xueming.shen at oracle.com Sat Oct 1 23:29:11 2011 From: xueming.shen at oracle.com (Xueming Shen) Date: Sat, 01 Oct 2011 23:29:11 -0700 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E87845D.2090908@gmx.de> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E87845D.2090908@gmx.de> Message-ID: <4E8804B7.2060600@oracle.com> http://www.unicode.org/versions/Unicode6.0.0/ch03.pdf Go to 3.9 Unicode Encoding Forms. Or simply search D93 On 10/1/2011 2:21 PM, Ulf Zibis wrote: > Am 30.09.2011 22:46, schrieb Xueming Shen: >> On 09/30/2011 07:09 AM, Ulf Zibis wrote: >>>> >>>> (1) new byte[]{(byte)0xE1, (byte)0x80, (byte)0x42} ---> >>>> CoderResult.malformedForLength(1) >>>> It appears the Unicode Standard now explicitly recommends to return >>>> the malformed length 2, >>>> what UTF-8 is doing now, for this scenario >>> My idea behind was, that in case of malformed length 1 a consecutive >>> call to the decode loop would again return another malformed length >>> 1, to ensure 2 replacement chars in the output string. (Not sure, if >>> that is expected in this corner case.) >> >> Unicode Standard's "best practices" D93a/b recommends to return 2 in >> this case. > Can you please give me a link for D93a/a. I don't know, where to find it. > > >> >> >>> 3. Consider additionally 6795537 - UTF_8$Decoder returns wrong >>> results >>> >>> >>>> I'm not sure I understand the suggested b1 < -0x3e patch, I don't >>>> see we can simply replace >>>> ((b1 >> 5) == -2) with (b1 < -0x3e). >>> You must see the b1 < -0x3e in combination with the following b1 < >>> -0x20. ;-) >>> >>> But now I have a better "if...else if" switch. :-) >>> - saves the shift operations >>> - only 1 comparison per case >>> - only 1 constant to load per case >>> - helps compiler to benefit from 1 byte constants and op-codes >>> - much better readable >> >> I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to >> 2009(?) because >> the benchmark shows the "shift" version is slightly faster. > IIRC this was only about a shift by multiples of 8 to ensure an 1-byte > comparison of 16/32-byte values in the double/quad-byte charsets. > > >> Do you have any number >> shows any difference now. My non-scientific benchmark still suggests >> the "shift" >> type is faster on -server vm, no significant difference on -client vm. >> >> ------------------ your new switch--------------- >> (1) -server >> Method Millis Ratio >> Decoding 1b UTF-8 : 125 1.000 >> Decoding 2b UTF-8 : 2558 20.443 >> Decoding 3b UTF-8 : 3439 27.481 >> Decoding 4b UTF-8 : 2030 16.221 >> (2) -client >> Decoding 1b UTF-8 : 335 1.000 >> Decoding 2b UTF-8 : 1041 3.105 >> Decoding 3b UTF-8 : 2245 6.694 >> Decoding 4b UTF-8 : 1254 3.741 >> >> ------------------ existing "shift"--------------- >> (1) -server >> Decoding 1b UTF-8 : 134 1.000 >> Decoding 2b UTF-8 : 1891 14.106 >> Decoding 3b UTF-8 : 2934 21.886 >> Decoding 4b UTF-8 : 2133 15.913 >> (2) -client >> Decoding 1b UTF-8 : 341 1.000 >> Decoding 2b UTF-8 : 949 2.560 >> Decoding 3b UTF-8 : 2321 6.255 >> Decoding 4b UTF-8 : 1278 3.446 >> > Very interesting and surprising numbers! > The most surprising is, that the client compiler generates faster code > for 2..4-byte codes. I think, we should ask the HotSpot team for help. > As the UTF-8 de/encoding is a very frequent task, HotSpot should > provide compiled code as optimized best as possible for UTF-8 de/encoding. > Another surprise is, that benchmark for 1b UTF-8 is not same for "new > switch" and "shift" version, as the ASCII only loop is the same in > both versions. > To discover the miracle, why the"shift" version is little faster than > the "new switch" version, it should be helpful, to see the > disassembling of the HotSpot compiled code. > A third version, using the "(b1 & 0xe0) == 0xc0"/"(b1 & 0xf0) == > 0xe0"/"(b1 & 0xf8) == 0xf0" pattern, should be interesting toofor the > benchmark comparison. > > In my opinion it would be more significant to compare x 1..4-byte > codes than y bytes of 1..4-byte codes. I.e. 1000 bytes of 1-byte codes > against 2000 bytes of 2-byte codes against 3000 bytes of 3-byte codes > against 4000 bytes of 4-byte codes > > We should document somewhere, that the ESU-8 decoder is faster than > the strong UTF-8 decoder for developers, who can ensure, that there > are no invalid surrogates in their source bytes. > > -Ulf > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111001/e56b66bb/attachment.html From Ulf.Zibis at gmx.de Sun Oct 2 02:52:35 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Sun, 02 Oct 2011 11:52:35 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E8804B7.2060600@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E87845D.2090908@gmx.de> <4E8804B7.2060600@oracle.com> Message-ID: <4E883463.1090508@gmx.de> Am 02.10.2011 08:29, schrieb Xueming Shen: > http://www.unicode.org/versions/Unicode6.0.0/ch03.pdf > > Go to 3.9 Unicode Encoding Forms. Or simply search D93 > > On 10/1/2011 2:21 PM, Ulf Zibis wrote: >> Am 30.09.2011 22:46, schrieb Xueming Shen: >>> On 09/30/2011 07:09 AM, Ulf Zibis wrote: >>>>> >>>>> (1) new byte[]{(byte)0xE1, (byte)0x80, (byte)0x42} ---> CoderResult.malformedForLength(1) >>>>> It appears the Unicode Standard now explicitly recommends to return the malformed length 2, >>>>> what UTF-8 is doing now, for this scenario >>>> My idea behind was, that in case of malformed length 1 a consecutive call to the decode loop >>>> would again return another malformed length 1, to ensure 2 replacement chars in the output >>>> string. (Not sure, if that is expected in this corner case.) >>> >>> Unicode Standard's "best practices" D93a/b recommends to return 2 in this case. OK, I got it: E1 80 42 --> malformed length 2 --> 1 replacement --> FFFD 0042 Because for later understanding by others it could be difficult to find the right documents, it would be *very nice* to add this link to the souce code of UTF_8.java, by javadoc, or by simple doc. -Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111002/b3dff8f7/attachment-0001.html From Ulf.Zibis at gmx.de Sun Oct 2 14:36:36 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Sun, 02 Oct 2011 23:36:36 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E84F0E2.6010503@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E84E025.3010105@gmx.de> <4E84F0E2.6010503@oracle.com> Message-ID: <4E88D964.1040603@gmx.de> Hi again, Am 30.09.2011 00:27, schrieb Xueming Shen: > On 09/29/2011 02:16 PM, Ulf Zibis wrote: >> >> 280 if (Character.isSurrogate(c)) >> 281 return malformedForLength(src, sp, dst, dp, 3); >> Shouldn't we return cr.length() = 1to allow remaining 2 bytes to be interpreted again ? >> Forget it! If c is a surrogate, b2 is in range A0..BF and b3 is in range 80..BF. Both can not be potentially well-formed as a first byte. > Actually I don't know the answer. My reading of D93a/D93b suggests that we might > interpret it as a whole, given the bytes are actually in well-formed byte pattern range > listed in Table 3.7, but "ill-formed" simply because they are surrogate value not scale > value, so I would interpret the whole 3 bytes as a maximal subpart. Given D93a/b is > "best practices for Using U+fffd", either way should be fine. We do have Unicode expert > on the list, so maybe they can share their opinion on what is the "desired"/recommended > behavior in this case, from Standard point view? At line 102 you could insert: // [E0] [A0..BF] // [E1..EF] [80..BF] -Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111002/d49cc7ef/attachment.html From Alan.Bateman at oracle.com Sun Oct 2 19:39:39 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 03 Oct 2011 03:39:39 +0100 Subject: testcase failure In-Reply-To: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> Message-ID: <4E89206B.1040603@oracle.com> I haven't seen it but Olivier Lagneau asked me off-list recently about the same issue (same test, same failure mode). I've cc'ed the i18n folks in case they recognize it. My guess is that this is an implementation bug in LocaleServiceProviderPool rather than a test bug. -Alan. Kelly O'Hair wrote: > Anyone seen this testcase failure before? > > -kto > > -------------------------------------------------- > TEST: java/util/Locale/Bug6989440.java > JDK under test: (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) > openjdk version "1.8.0-internal" > OpenJDK Runtime Environment (build 1.8.0-internal-201110030014.jprtadm.jdk-b00) > Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) > > ACTION: compile -- Passed. Compilation successful > REASON: User specified action: run compile -XDignore.symbol.file=true Bug6989440.java > TIME: 0.053 seconds > messages: > command: compile -XDignore.symbol.file=true /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java > reason: User specified action: run compile -XDignore.symbol.file=true Bug6989440.java > elapsed time (seconds): 0.053 > > ACTION: build -- Passed. All files up to date > REASON: Named class compiled on demand > TIME: 0.0 seconds > messages: > command: build Bug6989440 > reason: Named class compiled on demand > elapsed time (seconds): 0.0 > > ACTION: main -- Error. Error while cleaning up threads after test > REASON: User specified action: run main Bug6989440 > TIME: 120.01 seconds > messages: > command: main Bug6989440 > reason: User specified action: run main Bug6989440 > elapsed time (seconds): 120.01 > STDOUT: > STDERR: > > JavaTest Message: Test complete. > > > TEST RESULT: Error. Error while cleaning up threads after test > -------------------------------------------------- > > From naoto.sato at oracle.com Mon Oct 3 10:53:49 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Mon, 03 Oct 2011 10:53:49 -0700 Subject: testcase failure In-Reply-To: <4E89206B.1040603@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> Message-ID: <4E89F6AD.1060401@oracle.com> Discussed in the CR 7027061. Never been able to reproduce outside the JPRT system, and it's difficult to investigate such issue without reproducing it. Naoto On 10/2/11 7:39 PM, Alan Bateman wrote: > > I haven't seen it but Olivier Lagneau asked me off-list recently about > the same issue (same test, same failure mode). I've cc'ed the i18n folks > in case they recognize it. My guess is that this is an implementation > bug in LocaleServiceProviderPool rather than a test bug. > > -Alan. > > Kelly O'Hair wrote: >> Anyone seen this testcase failure before? >> >> -kto >> >> -------------------------------------------------- >> TEST: java/util/Locale/Bug6989440.java >> JDK under test: >> (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) >> openjdk version "1.8.0-internal" >> OpenJDK Runtime Environment (build >> 1.8.0-internal-201110030014.jprtadm.jdk-b00) >> Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) >> >> ACTION: compile -- Passed. Compilation successful >> REASON: User specified action: run compile -XDignore.symbol.file=true >> Bug6989440.java TIME: 0.053 seconds >> messages: >> command: compile -XDignore.symbol.file=true >> /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java >> reason: User specified action: run compile -XDignore.symbol.file=true >> Bug6989440.java elapsed time (seconds): 0.053 >> >> ACTION: build -- Passed. All files up to date >> REASON: Named class compiled on demand >> TIME: 0.0 seconds >> messages: >> command: build Bug6989440 >> reason: Named class compiled on demand >> elapsed time (seconds): 0.0 >> >> ACTION: main -- Error. Error while cleaning up threads after test >> REASON: User specified action: run main Bug6989440 TIME: 120.01 seconds >> messages: >> command: main Bug6989440 >> reason: User specified action: run main Bug6989440 elapsed time >> (seconds): 120.01 >> STDOUT: >> STDERR: >> >> JavaTest Message: Test complete. >> >> >> TEST RESULT: Error. Error while cleaning up threads after test >> -------------------------------------------------- >> > From david.holmes at oracle.com Mon Oct 3 14:25:29 2011 From: david.holmes at oracle.com (David Holmes) Date: Tue, 04 Oct 2011 07:25:29 +1000 Subject: testcase failure In-Reply-To: <4E89F6AD.1060401@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> Message-ID: <4E8A2849.60709@oracle.com> On 4/10/2011 3:53 AM, Naoto Sato wrote: > Discussed in the CR 7027061. Never been able to reproduce outside the > JPRT system, and it's difficult to investigate such issue without > reproducing it. This error message is coming from jtreg: ACTION: main -- Error. Error while cleaning up threads after test REASON: User specified action: run main Bug6989440 so it needs to be investigated by jtreg folk. I suspect however that it may be related to trying to interrupt the threads due to a timeout. David ----- > Naoto > > On 10/2/11 7:39 PM, Alan Bateman wrote: >> >> I haven't seen it but Olivier Lagneau asked me off-list recently about >> the same issue (same test, same failure mode). I've cc'ed the i18n folks >> in case they recognize it. My guess is that this is an implementation >> bug in LocaleServiceProviderPool rather than a test bug. >> >> -Alan. >> >> Kelly O'Hair wrote: >>> Anyone seen this testcase failure before? >>> >>> -kto >>> >>> -------------------------------------------------- >>> TEST: java/util/Locale/Bug6989440.java >>> JDK under test: >>> (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) >>> openjdk version "1.8.0-internal" >>> OpenJDK Runtime Environment (build >>> 1.8.0-internal-201110030014.jprtadm.jdk-b00) >>> Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) >>> >>> ACTION: compile -- Passed. Compilation successful >>> REASON: User specified action: run compile -XDignore.symbol.file=true >>> Bug6989440.java TIME: 0.053 seconds >>> messages: >>> command: compile -XDignore.symbol.file=true >>> /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java >>> reason: User specified action: run compile -XDignore.symbol.file=true >>> Bug6989440.java elapsed time (seconds): 0.053 >>> >>> ACTION: build -- Passed. All files up to date >>> REASON: Named class compiled on demand >>> TIME: 0.0 seconds >>> messages: >>> command: build Bug6989440 >>> reason: Named class compiled on demand >>> elapsed time (seconds): 0.0 >>> >>> ACTION: main -- Error. Error while cleaning up threads after test >>> REASON: User specified action: run main Bug6989440 TIME: 120.01 seconds >>> messages: >>> command: main Bug6989440 >>> reason: User specified action: run main Bug6989440 elapsed time >>> (seconds): 120.01 >>> STDOUT: >>> STDERR: >>> >>> JavaTest Message: Test complete. >>> >>> >>> TEST RESULT: Error. Error while cleaning up threads after test >>> -------------------------------------------------- >>> >> > From kelly.ohair at oracle.com Mon Oct 3 14:44:59 2011 From: kelly.ohair at oracle.com (Kelly Ohair) Date: Mon, 3 Oct 2011 14:44:59 -0700 Subject: testcase failure In-Reply-To: <4E8A2849.60709@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> Message-ID: i have seen a similar bug in my own jprt code where i was accidently working with HashSet or HashMap objects in two different threads very strange things like this happened i dont have the testcase handy to look at but i highly suspect the testcase this last failure had nothing to with JPRT, just make&make test the test/Makefile might run jtreg a little differently but the testcase should not fail also it is critical that the test be run on a machine with more than one processor, it just will not reproduce on a machine without multiple processors Sent from my iPhone On Oct 3, 2011, at 14:25, David Holmes wrote: > On 4/10/2011 3:53 AM, Naoto Sato wrote: >> Discussed in the CR 7027061. Never been able to reproduce outside the >> JPRT system, and it's difficult to investigate such issue without >> reproducing it. > > This error message is coming from jtreg: > > ACTION: main -- Error. Error while cleaning up threads after test > REASON: User specified action: run main Bug6989440 > > so it needs to be investigated by jtreg folk. I suspect however that it may be related to trying to interrupt the threads due to a timeout. > > David > ----- > >> Naoto >> >> On 10/2/11 7:39 PM, Alan Bateman wrote: >>> >>> I haven't seen it but Olivier Lagneau asked me off-list recently about >>> the same issue (same test, same failure mode). I've cc'ed the i18n folks >>> in case they recognize it. My guess is that this is an implementation >>> bug in LocaleServiceProviderPool rather than a test bug. >>> >>> -Alan. >>> >>> Kelly O'Hair wrote: >>>> Anyone seen this testcase failure before? >>>> >>>> -kto >>>> >>>> -------------------------------------------------- >>>> TEST: java/util/Locale/Bug6989440.java >>>> JDK under test: >>>> (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) >>>> openjdk version "1.8.0-internal" >>>> OpenJDK Runtime Environment (build >>>> 1.8.0-internal-201110030014.jprtadm.jdk-b00) >>>> Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) >>>> >>>> ACTION: compile -- Passed. Compilation successful >>>> REASON: User specified action: run compile -XDignore.symbol.file=true >>>> Bug6989440.java TIME: 0.053 seconds >>>> messages: >>>> command: compile -XDignore.symbol.file=true >>>> /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java >>>> reason: User specified action: run compile -XDignore.symbol.file=true >>>> Bug6989440.java elapsed time (seconds): 0.053 >>>> >>>> ACTION: build -- Passed. All files up to date >>>> REASON: Named class compiled on demand >>>> TIME: 0.0 seconds >>>> messages: >>>> command: build Bug6989440 >>>> reason: Named class compiled on demand >>>> elapsed time (seconds): 0.0 >>>> >>>> ACTION: main -- Error. Error while cleaning up threads after test >>>> REASON: User specified action: run main Bug6989440 TIME: 120.01 seconds >>>> messages: >>>> command: main Bug6989440 >>>> reason: User specified action: run main Bug6989440 elapsed time >>>> (seconds): 120.01 >>>> STDOUT: >>>> STDERR: >>>> >>>> JavaTest Message: Test complete. >>>> >>>> >>>> TEST RESULT: Error. Error while cleaning up threads after test >>>> -------------------------------------------------- >>>> >>> >> From david.holmes at oracle.com Mon Oct 3 22:20:16 2011 From: david.holmes at oracle.com (David Holmes) Date: Tue, 04 Oct 2011 15:20:16 +1000 Subject: testcase failure In-Reply-To: References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> Message-ID: <4E8A9790.10303@oracle.com> Kelly, The test is trivial - three threads try to get the locale data. Before the fix you'd have multiple threads stomping on each other - after the fix they should now be synchronized in terms of the primary initialization. But I'd have to check the actual locale code as that is where the synchronization needs to be. But again the other error comes from jtreg not from the testcase. David On 4/10/2011 7:44 AM, Kelly Ohair wrote: > i have seen a similar bug in my own jprt code where i was accidently working with HashSet or HashMap objects in two different threads very strange things like this happened > > i dont have the testcase handy to look at but i highly suspect the testcase > > this last failure had nothing to with JPRT, just make&make test > > the test/Makefile might run jtreg a little differently but the testcase should not fail > > also it is critical that the test be run on a machine with more than one processor, it just will not reproduce on a machine without multiple processors > > > Sent from my iPhone > > On Oct 3, 2011, at 14:25, David Holmes wrote: > >> On 4/10/2011 3:53 AM, Naoto Sato wrote: >>> Discussed in the CR 7027061. Never been able to reproduce outside the >>> JPRT system, and it's difficult to investigate such issue without >>> reproducing it. >> >> This error message is coming from jtreg: >> >> ACTION: main -- Error. Error while cleaning up threads after test >> REASON: User specified action: run main Bug6989440 >> >> so it needs to be investigated by jtreg folk. I suspect however that it may be related to trying to interrupt the threads due to a timeout. >> >> David >> ----- >> >>> Naoto >>> >>> On 10/2/11 7:39 PM, Alan Bateman wrote: >>>> >>>> I haven't seen it but Olivier Lagneau asked me off-list recently about >>>> the same issue (same test, same failure mode). I've cc'ed the i18n folks >>>> in case they recognize it. My guess is that this is an implementation >>>> bug in LocaleServiceProviderPool rather than a test bug. >>>> >>>> -Alan. >>>> >>>> Kelly O'Hair wrote: >>>>> Anyone seen this testcase failure before? >>>>> >>>>> -kto >>>>> >>>>> -------------------------------------------------- >>>>> TEST: java/util/Locale/Bug6989440.java >>>>> JDK under test: >>>>> (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) >>>>> openjdk version "1.8.0-internal" >>>>> OpenJDK Runtime Environment (build >>>>> 1.8.0-internal-201110030014.jprtadm.jdk-b00) >>>>> Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) >>>>> >>>>> ACTION: compile -- Passed. Compilation successful >>>>> REASON: User specified action: run compile -XDignore.symbol.file=true >>>>> Bug6989440.java TIME: 0.053 seconds >>>>> messages: >>>>> command: compile -XDignore.symbol.file=true >>>>> /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java >>>>> reason: User specified action: run compile -XDignore.symbol.file=true >>>>> Bug6989440.java elapsed time (seconds): 0.053 >>>>> >>>>> ACTION: build -- Passed. All files up to date >>>>> REASON: Named class compiled on demand >>>>> TIME: 0.0 seconds >>>>> messages: >>>>> command: build Bug6989440 >>>>> reason: Named class compiled on demand >>>>> elapsed time (seconds): 0.0 >>>>> >>>>> ACTION: main -- Error. Error while cleaning up threads after test >>>>> REASON: User specified action: run main Bug6989440 TIME: 120.01 seconds >>>>> messages: >>>>> command: main Bug6989440 >>>>> reason: User specified action: run main Bug6989440 elapsed time >>>>> (seconds): 120.01 >>>>> STDOUT: >>>>> STDERR: >>>>> >>>>> JavaTest Message: Test complete. >>>>> >>>>> >>>>> TEST RESULT: Error. Error while cleaning up threads after test >>>>> -------------------------------------------------- >>>>> >>>> >>> From Alan.Bateman at oracle.com Tue Oct 4 06:24:11 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Tue, 04 Oct 2011 14:24:11 +0100 Subject: testcase failure In-Reply-To: <4E8ABFB7.40108@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> Message-ID: <4E8B08FB.4040703@oracle.com> Chris Hegarty wrote: > Trivially, should the main thread in the test be waiting on the three > other threads to complete before exiting? > > I think jtreg will try to cleanup once the main thread completes. The > main thread should keep an array of the threads it creates and invoke > join() on each of them before returning from main. We do this all the > time in other areas. Right, once the main thread completes then jtreg will attempt to cleanup the remaining non-daemon threads in the thread group. It does this by interrupting each of the remaining threads in a loop up to a maximum number of rounds or until the remaining threads have terminated. It's possible that if the test is changed up to join on each of the 3 threads that this intermittent failure will go away. If so, then it suggests to me that perhaps the interrupt is causing a side effect that causes one of the threads to go into a loop block uninterruptedly. This is just a guess of course and it requires digging into the Locale code to come up with specific theories. -Alan. From chris.hegarty at oracle.com Tue Oct 4 01:11:35 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 04 Oct 2011 09:11:35 +0100 Subject: testcase failure In-Reply-To: <4E8A9790.10303@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> Message-ID: <4E8ABFB7.40108@oracle.com> Trivially, should the main thread in the test be waiting on the three other threads to complete before exiting? I think jtreg will try to cleanup once the main thread completes. The main thread should keep an array of the threads it creates and invoke join() on each of them before returning from main. We do this all the time in other areas. -Chris. On 10/ 4/11 06:20 AM, David Holmes wrote: > Kelly, > > The test is trivial - three threads try to get the locale data. Before > the fix you'd have multiple threads stomping on each other - after the > fix they should now be synchronized in terms of the primary > initialization. But I'd have to check the actual locale code as that is > where the synchronization needs to be. > > But again the other error comes from jtreg not from the testcase. > > David > > On 4/10/2011 7:44 AM, Kelly Ohair wrote: >> i have seen a similar bug in my own jprt code where i was accidently >> working with HashSet or HashMap objects in two different threads very >> strange things like this happened >> >> i dont have the testcase handy to look at but i highly suspect the >> testcase >> >> this last failure had nothing to with JPRT, just make&make test >> >> the test/Makefile might run jtreg a little differently but the >> testcase should not fail >> >> also it is critical that the test be run on a machine with more than >> one processor, it just will not reproduce on a machine without >> multiple processors >> >> >> Sent from my iPhone >> >> On Oct 3, 2011, at 14:25, David Holmes wrote: >> >>> On 4/10/2011 3:53 AM, Naoto Sato wrote: >>>> Discussed in the CR 7027061. Never been able to reproduce outside the >>>> JPRT system, and it's difficult to investigate such issue without >>>> reproducing it. >>> >>> This error message is coming from jtreg: >>> >>> ACTION: main -- Error. Error while cleaning up threads after test >>> REASON: User specified action: run main Bug6989440 >>> >>> so it needs to be investigated by jtreg folk. I suspect however that >>> it may be related to trying to interrupt the threads due to a timeout. >>> >>> David >>> ----- >>> >>>> Naoto >>>> >>>> On 10/2/11 7:39 PM, Alan Bateman wrote: >>>>> >>>>> I haven't seen it but Olivier Lagneau asked me off-list recently about >>>>> the same issue (same test, same failure mode). I've cc'ed the i18n >>>>> folks >>>>> in case they recognize it. My guess is that this is an implementation >>>>> bug in LocaleServiceProviderPool rather than a test bug. >>>>> >>>>> -Alan. >>>>> >>>>> Kelly O'Hair wrote: >>>>>> Anyone seen this testcase failure before? >>>>>> >>>>>> -kto >>>>>> >>>>>> -------------------------------------------------- >>>>>> TEST: java/util/Locale/Bug6989440.java >>>>>> JDK under test: >>>>>> (/tmp/jprt/P1/001456.jprtadm/testproduct/solaris_i586_5.10-product) >>>>>> openjdk version "1.8.0-internal" >>>>>> OpenJDK Runtime Environment (build >>>>>> 1.8.0-internal-201110030014.jprtadm.jdk-b00) >>>>>> Java HotSpot(TM) Client VM (build 22.0-b03, mixed mode, sharing) >>>>>> >>>>>> ACTION: compile -- Passed. Compilation successful >>>>>> REASON: User specified action: run compile -XDignore.symbol.file=true >>>>>> Bug6989440.java TIME: 0.053 seconds >>>>>> messages: >>>>>> command: compile -XDignore.symbol.file=true >>>>>> /tmp/jprt/P1/001456.jprtadm/source/test/java/util/Locale/Bug6989440.java >>>>>> >>>>>> reason: User specified action: run compile -XDignore.symbol.file=true >>>>>> Bug6989440.java elapsed time (seconds): 0.053 >>>>>> >>>>>> ACTION: build -- Passed. All files up to date >>>>>> REASON: Named class compiled on demand >>>>>> TIME: 0.0 seconds >>>>>> messages: >>>>>> command: build Bug6989440 >>>>>> reason: Named class compiled on demand >>>>>> elapsed time (seconds): 0.0 >>>>>> >>>>>> ACTION: main -- Error. Error while cleaning up threads after test >>>>>> REASON: User specified action: run main Bug6989440 TIME: 120.01 >>>>>> seconds >>>>>> messages: >>>>>> command: main Bug6989440 >>>>>> reason: User specified action: run main Bug6989440 elapsed time >>>>>> (seconds): 120.01 >>>>>> STDOUT: >>>>>> STDERR: >>>>>> >>>>>> JavaTest Message: Test complete. >>>>>> >>>>>> >>>>>> TEST RESULT: Error. Error while cleaning up threads after test >>>>>> -------------------------------------------------- >>>>>> >>>>> >>>> From david.holmes at oracle.com Tue Oct 4 09:04:33 2011 From: david.holmes at oracle.com (David Holmes) Date: Wed, 05 Oct 2011 02:04:33 +1000 Subject: testcase failure In-Reply-To: <4E8B08FB.4040703@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> Message-ID: <4E8B2E91.4020604@oracle.com> Thanks Chris and Alan. On 4/10/2011 11:24 PM, Alan Bateman wrote: > Chris Hegarty wrote: >> Trivially, should the main thread in the test be waiting on the three >> other threads to complete before exiting? >> >> I think jtreg will try to cleanup once the main thread completes. The >> main thread should keep an array of the threads it creates and invoke >> join() on each of them before returning from main. We do this all the >> time in other areas. > Right, once the main thread completes then jtreg will attempt to cleanup > the remaining non-daemon threads in the thread group. It does this by > interrupting each of the remaining threads in a loop up to a maximum > number of rounds or until the remaining threads have terminated. I wasn't aware of this behaviour from jtreg (but then I don't write such tests). It explains the jtreg "error". I expect the test threads are not responsive to interrupts (why should they be). The reported ConcurrentModificationException would indicate a potential issue still remaining in the locale code. David It's > possible that if the test is changed up to join on each of the 3 threads > that this intermittent failure will go away. If so, then it suggests to > me that perhaps the interrupt is causing a side effect that causes one > of the threads to go into a loop block uninterruptedly. This is just a > guess of course and it requires digging into the Locale code to come up > with specific theories. > > -Alan. From chris.hegarty at oracle.com Wed Oct 5 07:07:00 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Wed, 05 Oct 2011 15:07:00 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8B2E91.4020604@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> Message-ID: <4E8C6484.2010909@oracle.com> Alan, David, I noticed CR 7027061 was closed as 'not a defect'. Should I file a new CR to have the jtreg test fixed (join on all created threads)? The test will still exercise what it is supposed to, and the ConcurrentModificationException issue can be investigated at another time. This way we can get more stable test runs. -Chris. On 04/10/2011 17:04, David Holmes wrote: > Thanks Chris and Alan. > > On 4/10/2011 11:24 PM, Alan Bateman wrote: >> Chris Hegarty wrote: >>> Trivially, should the main thread in the test be waiting on the three >>> other threads to complete before exiting? >>> >>> I think jtreg will try to cleanup once the main thread completes. The >>> main thread should keep an array of the threads it creates and invoke >>> join() on each of them before returning from main. We do this all the >>> time in other areas. >> Right, once the main thread completes then jtreg will attempt to cleanup >> the remaining non-daemon threads in the thread group. It does this by >> interrupting each of the remaining threads in a loop up to a maximum >> number of rounds or until the remaining threads have terminated. > > I wasn't aware of this behaviour from jtreg (but then I don't write such > tests). It explains the jtreg "error". I expect the test threads are not > responsive to interrupts (why should they be). > > The reported ConcurrentModificationException would indicate a potential > issue still remaining in the locale code. > > David > > It's >> possible that if the test is changed up to join on each of the 3 threads >> that this intermittent failure will go away. If so, then it suggests to >> me that perhaps the interrupt is causing a side effect that causes one >> of the threads to go into a loop block uninterruptedly. This is just a >> guess of course and it requires digging into the Locale code to come up >> with specific theories. >> >> -Alan. From naoto.sato at oracle.com Wed Oct 5 07:57:47 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Wed, 05 Oct 2011 07:57:47 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C6484.2010909@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> Message-ID: <4E8C706B.4040200@oracle.com> Hi Chris, I appreciate it, and will fix the test case. Naoto On 10/5/11 7:07 AM, Chris Hegarty wrote: > Alan, David, > > I noticed CR 7027061 was closed as 'not a defect'. Should I file a new > CR to have the jtreg test fixed (join on all created threads)? The test > will still exercise what it is supposed to, and the > ConcurrentModificationException issue can be investigated at another > time. This way we can get more stable test runs. > > -Chris. > > On 04/10/2011 17:04, David Holmes wrote: >> Thanks Chris and Alan. >> >> On 4/10/2011 11:24 PM, Alan Bateman wrote: >>> Chris Hegarty wrote: >>>> Trivially, should the main thread in the test be waiting on the three >>>> other threads to complete before exiting? >>>> >>>> I think jtreg will try to cleanup once the main thread completes. The >>>> main thread should keep an array of the threads it creates and invoke >>>> join() on each of them before returning from main. We do this all the >>>> time in other areas. >>> Right, once the main thread completes then jtreg will attempt to cleanup >>> the remaining non-daemon threads in the thread group. It does this by >>> interrupting each of the remaining threads in a loop up to a maximum >>> number of rounds or until the remaining threads have terminated. >> >> I wasn't aware of this behaviour from jtreg (but then I don't write such >> tests). It explains the jtreg "error". I expect the test threads are not >> responsive to interrupts (why should they be). >> >> The reported ConcurrentModificationException would indicate a potential >> issue still remaining in the locale code. >> >> David >> >> It's >>> possible that if the test is changed up to join on each of the 3 threads >>> that this intermittent failure will go away. If so, then it suggests to >>> me that perhaps the interrupt is causing a side effect that causes one >>> of the threads to go into a loop block uninterruptedly. This is just a >>> guess of course and it requires digging into the Locale code to come up >>> with specific theories. >>> >>> -Alan. From chris.hegarty at oracle.com Wed Oct 5 08:42:31 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Wed, 05 Oct 2011 16:42:31 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C706B.4040200@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> Message-ID: <4E8C7AE7.10807@oracle.com> Alan, Naoto, David I filed CR 7098100: java/util/Locale/Bug6989440.java fails intermittently. If you're ok with it please review the patch (below) and I can push it to the tl repo. Job done! >: hg diff test/java/util/Locale/Bug6989440.java diff -r 24741fe639a8 test/java/util/Locale/Bug6989440.java --- a/test/java/util/Locale/Bug6989440.java Tue Oct 04 16:37:08 2011 +0100 +++ b/test/java/util/Locale/Bug6989440.java Wed Oct 05 16:34:09 2011 +0100 @@ -37,14 +37,15 @@ import sun.util.LocaleServiceProviderPoo import sun.util.LocaleServiceProviderPool; public class Bug6989440 { - public static void main(String[] args) { - TestThread t1 = new TestThread(LocaleNameProvider.class); - TestThread t2 = new TestThread(TimeZoneNameProvider.class); - TestThread t3 = new TestThread(DateFormatProvider.class); - - t1.start(); - t2.start(); - t3.start(); + public static void main(String[] args) throws Exception { + Thread[] threads = new Thread[3]; + threads[0] = new TestThread(LocaleNameProvider.class); + threads[1] = new TestThread(TimeZoneNameProvider.class); + threads[2] = new TestThread(DateFormatProvider.class); + for (int i=0; i Hi Chris, > > I appreciate it, and will fix the test case. > > Naoto > > On 10/5/11 7:07 AM, Chris Hegarty wrote: >> Alan, David, >> >> I noticed CR 7027061 was closed as 'not a defect'. Should I file a new >> CR to have the jtreg test fixed (join on all created threads)? The test >> will still exercise what it is supposed to, and the >> ConcurrentModificationException issue can be investigated at another >> time. This way we can get more stable test runs. >> >> -Chris. >> >> On 04/10/2011 17:04, David Holmes wrote: >>> Thanks Chris and Alan. >>> >>> On 4/10/2011 11:24 PM, Alan Bateman wrote: >>>> Chris Hegarty wrote: >>>>> Trivially, should the main thread in the test be waiting on the three >>>>> other threads to complete before exiting? >>>>> >>>>> I think jtreg will try to cleanup once the main thread completes. The >>>>> main thread should keep an array of the threads it creates and invoke >>>>> join() on each of them before returning from main. We do this all the >>>>> time in other areas. >>>> Right, once the main thread completes then jtreg will attempt to >>>> cleanup >>>> the remaining non-daemon threads in the thread group. It does this by >>>> interrupting each of the remaining threads in a loop up to a maximum >>>> number of rounds or until the remaining threads have terminated. >>> >>> I wasn't aware of this behaviour from jtreg (but then I don't write such >>> tests). It explains the jtreg "error". I expect the test threads are not >>> responsive to interrupts (why should they be). >>> >>> The reported ConcurrentModificationException would indicate a potential >>> issue still remaining in the locale code. >>> >>> David >>> >>> It's >>>> possible that if the test is changed up to join on each of the 3 >>>> threads >>>> that this intermittent failure will go away. If so, then it suggests to >>>> me that perhaps the interrupt is causing a side effect that causes one >>>> of the threads to go into a loop block uninterruptedly. This is just a >>>> guess of course and it requires digging into the Locale code to come up >>>> with specific theories. >>>> >>>> -Alan. > From naoto.sato at oracle.com Wed Oct 5 08:53:55 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Wed, 05 Oct 2011 08:53:55 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C7AE7.10807@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> Message-ID: <4E8C7D93.5030807@oracle.com> Looks good to me. Thanks! Naoto On 10/5/11 8:42 AM, Chris Hegarty wrote: > Alan, Naoto, David > > I filed CR 7098100: java/util/Locale/Bug6989440.java fails intermittently. > > If you're ok with it please review the patch (below) and I can push it > to the tl repo. Job done! > > >: hg diff test/java/util/Locale/Bug6989440.java > diff -r 24741fe639a8 test/java/util/Locale/Bug6989440.java > --- a/test/java/util/Locale/Bug6989440.java Tue Oct 04 16:37:08 2011 +0100 > +++ b/test/java/util/Locale/Bug6989440.java Wed Oct 05 16:34:09 2011 +0100 > @@ -37,14 +37,15 @@ import sun.util.LocaleServiceProviderPoo > import sun.util.LocaleServiceProviderPool; > > public class Bug6989440 { > - public static void main(String[] args) { > - TestThread t1 = new TestThread(LocaleNameProvider.class); > - TestThread t2 = new TestThread(TimeZoneNameProvider.class); > - TestThread t3 = new TestThread(DateFormatProvider.class); > - > - t1.start(); > - t2.start(); > - t3.start(); > + public static void main(String[] args) throws Exception { > + Thread[] threads = new Thread[3]; > + threads[0] = new TestThread(LocaleNameProvider.class); > + threads[1] = new TestThread(TimeZoneNameProvider.class); > + threads[2] = new TestThread(DateFormatProvider.class); > + for (int i=0; i + threads[i].start(); > + for (int i=0; i + threads[i].join(); > } > > > -Chris. > > > On 05/10/2011 15:57, Naoto Sato wrote: >> Hi Chris, >> >> I appreciate it, and will fix the test case. >> >> Naoto >> >> On 10/5/11 7:07 AM, Chris Hegarty wrote: >>> Alan, David, >>> >>> I noticed CR 7027061 was closed as 'not a defect'. Should I file a new >>> CR to have the jtreg test fixed (join on all created threads)? The test >>> will still exercise what it is supposed to, and the >>> ConcurrentModificationException issue can be investigated at another >>> time. This way we can get more stable test runs. >>> >>> -Chris. >>> >>> On 04/10/2011 17:04, David Holmes wrote: >>>> Thanks Chris and Alan. >>>> >>>> On 4/10/2011 11:24 PM, Alan Bateman wrote: >>>>> Chris Hegarty wrote: >>>>>> Trivially, should the main thread in the test be waiting on the three >>>>>> other threads to complete before exiting? >>>>>> >>>>>> I think jtreg will try to cleanup once the main thread completes. The >>>>>> main thread should keep an array of the threads it creates and invoke >>>>>> join() on each of them before returning from main. We do this all the >>>>>> time in other areas. >>>>> Right, once the main thread completes then jtreg will attempt to >>>>> cleanup >>>>> the remaining non-daemon threads in the thread group. It does this by >>>>> interrupting each of the remaining threads in a loop up to a maximum >>>>> number of rounds or until the remaining threads have terminated. >>>> >>>> I wasn't aware of this behaviour from jtreg (but then I don't write >>>> such >>>> tests). It explains the jtreg "error". I expect the test threads are >>>> not >>>> responsive to interrupts (why should they be). >>>> >>>> The reported ConcurrentModificationException would indicate a potential >>>> issue still remaining in the locale code. >>>> >>>> David >>>> >>>> It's >>>>> possible that if the test is changed up to join on each of the 3 >>>>> threads >>>>> that this intermittent failure will go away. If so, then it >>>>> suggests to >>>>> me that perhaps the interrupt is causing a side effect that causes one >>>>> of the threads to go into a loop block uninterruptedly. This is just a >>>>> guess of course and it requires digging into the Locale code to >>>>> come up >>>>> with specific theories. >>>>> >>>>> -Alan. >> From Alan.Bateman at oracle.com Wed Oct 5 09:58:50 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Wed, 05 Oct 2011 17:58:50 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C7AE7.10807@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> Message-ID: <4E8C8CCA.7010100@oracle.com> Chris Hegarty wrote: > Alan, Naoto, David > > I filed CR 7098100: java/util/Locale/Bug6989440.java fails > intermittently. > > If you're ok with it please review the patch (below) and I can push it > to the tl repo. Job done! I assume there is also some underlying issue in the Locale code and this might get hidden if we fix the test (I"ve no objection to fixing the test of course, just thinking that we should study the Locale code to try to identify the deadlock or hang or whatever it is that is causing the threads in this test not to terminate). -Alan From naoto.sato at oracle.com Wed Oct 5 10:35:26 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Wed, 05 Oct 2011 10:35:26 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C8CCA.7010100@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> Message-ID: <4E8C955E.6060502@oracle.com> I will look into this. Reopened the original CR. Naoto On 10/5/11 9:58 AM, Alan Bateman wrote: > Chris Hegarty wrote: >> Alan, Naoto, David >> >> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >> intermittently. >> >> If you're ok with it please review the patch (below) and I can push it >> to the tl repo. Job done! > I assume there is also some underlying issue in the Locale code and this > might get hidden if we fix the test (I"ve no objection to fixing the > test of course, just thinking that we should study the Locale code to > try to identify the deadlock or hang or whatever it is that is causing > the threads in this test not to terminate). > > -Alan From david.holmes at oracle.com Wed Oct 5 10:46:23 2011 From: david.holmes at oracle.com (David Holmes) Date: Thu, 06 Oct 2011 03:46:23 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C8CCA.7010100@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> Message-ID: <4E8C97EF.3070707@oracle.com> On 6/10/2011 2:58 AM, Alan Bateman wrote: > Chris Hegarty wrote: >> Alan, Naoto, David >> >> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >> intermittently. >> >> If you're ok with it please review the patch (below) and I can push it >> to the tl repo. Job done! > I assume there is also some underlying issue in the Locale code and this > might get hidden if we fix the test (I"ve no objection to fixing the > test of course, just thinking that we should study the Locale code to > try to identify the deadlock or hang or whatever it is that is causing > the threads in this test not to terminate). Fixing the test should not impact the ConcurrentModificationException issue. The fix is ok - thanks Chris. The original CR should have been reassigned to the correct category rather than being closed when filed in the wrong (JPRT) category :( I'll try to take a few minutes and look at the locale code. David From david.holmes at oracle.com Wed Oct 5 11:01:51 2011 From: david.holmes at oracle.com (David Holmes) Date: Thu, 06 Oct 2011 04:01:51 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C955E.6060502@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> Message-ID: <4E8C9B8F.8000205@oracle.com> This might not be related to the CME problem, but here: public static LocaleServiceProviderPool getPool(Class providerClass) { LocaleServiceProviderPool pool = poolOfPools.get(providerClass); if (pool == null) { LocaleServiceProviderPool newPool = new LocaleServiceProviderPool(providerClass); pool = poolOfPools.put(providerClass, newPool); if (pool == null) { pool = newPool; } } return pool; } we should probably be using poolOfPools.putIfAbsent(providerClass, newPool) David On 6/10/2011 3:35 AM, Naoto Sato wrote: > I will look into this. Reopened the original CR. > > Naoto > > On 10/5/11 9:58 AM, Alan Bateman wrote: >> Chris Hegarty wrote: >>> Alan, Naoto, David >>> >>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>> intermittently. >>> >>> If you're ok with it please review the patch (below) and I can push it >>> to the tl repo. Job done! >> I assume there is also some underlying issue in the Locale code and this >> might get hidden if we fix the test (I"ve no objection to fixing the >> test of course, just thinking that we should study the Locale code to >> try to identify the deadlock or hang or whatever it is that is causing >> the threads in this test not to terminate). >> >> -Alan > From chris.hegarty at oracle.com Thu Oct 6 04:02:57 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Thu, 06 Oct 2011 12:02:57 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8C9B8F.8000205@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> Message-ID: <4E8D8AE1.8080902@oracle.com> David, Expanding (more threads and more runs) and running this test on one of our dual core Linux x64 boxes, reproduce the CME about one in every ten runs. I instrumented where the CME was being created to determine the expected/actual modcount: final void checkForComodification() { if (modCount != expectedModCount) - throw new ConcurrentModificationException(); + throw new ConcurrentModificationException("Expected: " + expectedModCount + + ", got: " + modCount); I see several exceptions, similar to the following (numbers vary): Exception in thread "Thread-23" java.util.ConcurrentModificationException: Expected: 96, got: 156 at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) at java.util.ArrayList$Itr.next(ArrayList.java:791) at java.util.AbstractCollection.addAll(AbstractCollection.java:333) at java.util.HashSet.(HashSet.java:117) at sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) at Interrupter$TestThread.run(Interrupter.java:49) There would appear to be 156 JRE Locales ( at least on this system ), modCount is incremented for each add(), but when the iterator is created ( implicitly during the HastSet.addAll ) it sees a different value for modCount. I think there is a visibility issue here. availableJRELocales is volatile, but the List reference returned from getJRELocales is not. In the case where availableJRELocales is not null there will be no memory barrier to force a HB relationship. Or maybe I've gotten this wrong? His is quite bizarre, or maybe it is just the overly complicated use of locking/DCL in this class. -Chris. On 10/ 5/11 07:01 PM, David Holmes wrote: > This might not be related to the CME problem, but here: > > public static LocaleServiceProviderPool getPool(Class LocaleServiceProvider> providerClass) { > LocaleServiceProviderPool pool = poolOfPools.get(providerClass); > if (pool == null) { > LocaleServiceProviderPool newPool = > new LocaleServiceProviderPool(providerClass); > pool = poolOfPools.put(providerClass, newPool); > if (pool == null) { > pool = newPool; > } > } > > return pool; > } > > we should probably be using poolOfPools.putIfAbsent(providerClass, newPool) > > David > > On 6/10/2011 3:35 AM, Naoto Sato wrote: >> I will look into this. Reopened the original CR. >> >> Naoto >> >> On 10/5/11 9:58 AM, Alan Bateman wrote: >>> Chris Hegarty wrote: >>>> Alan, Naoto, David >>>> >>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>> intermittently. >>>> >>>> If you're ok with it please review the patch (below) and I can push it >>>> to the tl repo. Job done! >>> I assume there is also some underlying issue in the Locale code and this >>> might get hidden if we fix the test (I"ve no objection to fixing the >>> test of course, just thinking that we should study the Locale code to >>> try to identify the deadlock or hang or whatever it is that is causing >>> the threads in this test not to terminate). >>> >>> -Alan >> From chris.hegarty at oracle.com Thu Oct 6 06:34:51 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Thu, 06 Oct 2011 14:34:51 +0100 Subject: JDK8 TL repo build fails in src/solaris/native/java/util/TimeZone_md.c Message-ID: <4E8DAE7B.4000109@oracle.com> I filed CR 7098394 against this. Solaris 10 x64 build fails since the integration of CR 7092679. "../../../src/solaris/native/java/util/TimeZone_md.c", line 128: prototype mismatch: 2 args passed, 3 expected "../../../src/solaris/native/java/util/TimeZone_md.c", line 128: warning: improper pointer/integer combination: op "=" cc: acomp failed for ../../../src/solaris/native/java/util/TimeZone_md.c make[3]: *** [../../../build/solaris-amd64/tmp/java/java.lang/java/obj64/TimeZone_md.o] Error 1 make[3]: Leaving directory `/tmp/jprt/P1/112204.ch122065/source/make/java/java' make[2]: *** [library_parallel_compile] Error 2 make[2]: Leaving directory `/tmp/jprt/P1/112204.ch122065/source/make/java/java' make[1]: *** [all] Error 1 make[1]: Leaving directory `/tmp/jprt/P1/112204.ch122065/source/make/java' make: *** [all] Error 1 -Chris. From david.holmes at oracle.com Thu Oct 6 10:09:33 2011 From: david.holmes at oracle.com (David Holmes) Date: Fri, 07 Oct 2011 03:09:33 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8D8AE1.8080902@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> Message-ID: <4E8DE0CD.3080401@oracle.com> Hi Chris, Thanks. Here's the bug: private List getJRELocales() { if (availableJRELocales == null) { synchronized (LocaleServiceProviderPool.class) { if (availableJRELocales == null) { Locale[] allLocales = LocaleData.getAvailableLocales(); availableJRELocales = new ArrayList(allLocales.length); <<==== YIKES we just published an empty ArrayList for (Locale locale : allLocales) { availableJRELocales.add(getLookupLocale(locale)); } } } } return availableJRELocales; } availableJRELocales is a static variable shared across all pools. But it is being published before it gets populated. We need to use a temporary for the new ArrayList and only assign to availableJRELocales after it is populated. In addition, as you mentioned, availableJRELocales needs to be volatile for this DCL pattern to be correct. Thanks, David On 6/10/2011 9:02 PM, Chris Hegarty wrote: > I see several exceptions, similar to the following (numbers vary): > > Exception in thread "Thread-23" > java.util.ConcurrentModificationException: Expected: 96, got: 156 > at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) > at java.util.ArrayList$Itr.next(ArrayList.java:791) > at java.util.AbstractCollection.addAll(AbstractCollection.java:333) > at java.util.HashSet.(HashSet.java:117) > at > sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) > > at Interrupter$TestThread.run(Interrupter.java:49) > > There would appear to be 156 JRE Locales ( at least on this system ), > modCount is incremented for each add(), but when the iterator is created > ( implicitly during the HastSet.addAll ) it sees a different value for > modCount. > > I think there is a visibility issue here. availableJRELocales is > volatile, but the List reference returned from getJRELocales is not. In > the case where availableJRELocales is not null there will be no memory > barrier to force a HB relationship. Or maybe I've gotten this wrong? His > is quite bizarre, or maybe it is just the overly complicated use of > locking/DCL in this class. > > -Chris. > > On 10/ 5/11 07:01 PM, David Holmes wrote: >> This might not be related to the CME problem, but here: >> >> public static LocaleServiceProviderPool getPool(Class> LocaleServiceProvider> providerClass) { >> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >> if (pool == null) { >> LocaleServiceProviderPool newPool = >> new LocaleServiceProviderPool(providerClass); >> pool = poolOfPools.put(providerClass, newPool); >> if (pool == null) { >> pool = newPool; >> } >> } >> >> return pool; >> } >> >> we should probably be using poolOfPools.putIfAbsent(providerClass, >> newPool) >> >> David >> >> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>> I will look into this. Reopened the original CR. >>> >>> Naoto >>> >>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>> Chris Hegarty wrote: >>>>> Alan, Naoto, David >>>>> >>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>> intermittently. >>>>> >>>>> If you're ok with it please review the patch (below) and I can push it >>>>> to the tl repo. Job done! >>>> I assume there is also some underlying issue in the Locale code and >>>> this >>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>> test of course, just thinking that we should study the Locale code to >>>> try to identify the deadlock or hang or whatever it is that is causing >>>> the threads in this test not to terminate). >>>> >>>> -Alan >>> From chris.hegarty at oracle.com Thu Oct 6 10:19:24 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Thu, 06 Oct 2011 18:19:24 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java Message-ID: D'oh! I should have seen this. Thanks David -Chris David Holmes wrote: >Hi Chris, > >Thanks. Here's the bug: > > private List getJRELocales() { > if (availableJRELocales == null) { > synchronized (LocaleServiceProviderPool.class) { > if (availableJRELocales == null) { > Locale[] allLocales = LocaleData.getAvailableLocales(); > availableJRELocales = new >ArrayList(allLocales.length); <<==== YIKES we just published an >empty ArrayList > for (Locale locale : allLocales) { > availableJRELocales.add(getLookupLocale(locale)); > } > } > } > } > return availableJRELocales; > } > > >availableJRELocales is a static variable shared across all pools. But it >is being published before it gets populated. We need to use a temporary >for the new ArrayList and only assign to availableJRELocales after it is >populated. > >In addition, as you mentioned, availableJRELocales needs to be volatile >for this DCL pattern to be correct. > >Thanks, >David > >On 6/10/2011 9:02 PM, Chris Hegarty wrote: >> I see several exceptions, similar to the following (numbers vary): >> >> Exception in thread "Thread-23" >> java.util.ConcurrentModificationException: Expected: 96, got: 156 >> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >> at java.util.ArrayList$Itr.next(ArrayList.java:791) >> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >> at java.util.HashSet.(HashSet.java:117) >> at >> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >> >> at Interrupter$TestThread.run(Interrupter.java:49) > > >> >> There would appear to be 156 JRE Locales ( at least on this system ), >> modCount is incremented for each add(), but when the iterator is created >> ( implicitly during the HastSet.addAll ) it sees a different value for >> modCount. >> >> I think there is a visibility issue here. availableJRELocales is >> volatile, but the List reference returned from getJRELocales is not. In >> the case where availableJRELocales is not null there will be no memory >> barrier to force a HB relationship. Or maybe I've gotten this wrong? His >> is quite bizarre, or maybe it is just the overly complicated use of >> locking/DCL in this class. >> >> -Chris. >> >> On 10/ 5/11 07:01 PM, David Holmes wrote: >>> This might not be related to the CME problem, but here: >>> >>> public static LocaleServiceProviderPool getPool(Class>> LocaleServiceProvider> providerClass) { >>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>> if (pool == null) { >>> LocaleServiceProviderPool newPool = >>> new LocaleServiceProviderPool(providerClass); >>> pool = poolOfPools.put(providerClass, newPool); >>> if (pool == null) { >>> pool = newPool; >>> } >>> } >>> >>> return pool; >>> } >>> >>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>> newPool) >>> >>> David >>> >>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>> I will look into this. Reopened the original CR. >>>> >>>> Naoto >>>> >>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>> Chris Hegarty wrote: >>>>>> Alan, Naoto, David >>>>>> >>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>> intermittently. >>>>>> >>>>>> If you're ok with it please review the patch (below) and I can push it >>>>>> to the tl repo. Job done! >>>>> I assume there is also some underlying issue in the Locale code and >>>>> this >>>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>>> test of course, just thinking that we should study the Locale code to >>>>> try to identify the deadlock or hang or whatever it is that is causing >>>>> the threads in this test not to terminate). >>>>> >>>>> -Alan >>>> From naoto.sato at oracle.com Thu Oct 6 14:59:33 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Thu, 06 Oct 2011 14:59:33 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8DE0CD.3080401@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> Message-ID: <4E8E24C5.9090402@oracle.com> Hi David, Thank you for the quick look and the fix! Naoto On 10/6/11 10:09 AM, David Holmes wrote: > Hi Chris, > > Thanks. Here's the bug: > > private List getJRELocales() { > if (availableJRELocales == null) { > synchronized (LocaleServiceProviderPool.class) { > if (availableJRELocales == null) { > Locale[] allLocales = LocaleData.getAvailableLocales(); > availableJRELocales = new ArrayList(allLocales.length); <<==== > YIKES we just published an empty ArrayList > for (Locale locale : allLocales) { > availableJRELocales.add(getLookupLocale(locale)); > } > } > } > } > return availableJRELocales; > } > > > availableJRELocales is a static variable shared across all pools. But it > is being published before it gets populated. We need to use a temporary > for the new ArrayList and only assign to availableJRELocales after it is > populated. > > In addition, as you mentioned, availableJRELocales needs to be volatile > for this DCL pattern to be correct. > > Thanks, > David > > On 6/10/2011 9:02 PM, Chris Hegarty wrote: >> I see several exceptions, similar to the following (numbers vary): >> >> Exception in thread "Thread-23" >> java.util.ConcurrentModificationException: Expected: 96, got: 156 >> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >> at java.util.ArrayList$Itr.next(ArrayList.java:791) >> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >> at java.util.HashSet.(HashSet.java:117) >> at >> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >> >> >> at Interrupter$TestThread.run(Interrupter.java:49) > > >> >> There would appear to be 156 JRE Locales ( at least on this system ), >> modCount is incremented for each add(), but when the iterator is created >> ( implicitly during the HastSet.addAll ) it sees a different value for >> modCount. >> >> I think there is a visibility issue here. availableJRELocales is >> volatile, but the List reference returned from getJRELocales is not. In >> the case where availableJRELocales is not null there will be no memory >> barrier to force a HB relationship. Or maybe I've gotten this wrong? His >> is quite bizarre, or maybe it is just the overly complicated use of >> locking/DCL in this class. >> >> -Chris. >> >> On 10/ 5/11 07:01 PM, David Holmes wrote: >>> This might not be related to the CME problem, but here: >>> >>> public static LocaleServiceProviderPool getPool(Class>> LocaleServiceProvider> providerClass) { >>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>> if (pool == null) { >>> LocaleServiceProviderPool newPool = >>> new LocaleServiceProviderPool(providerClass); >>> pool = poolOfPools.put(providerClass, newPool); >>> if (pool == null) { >>> pool = newPool; >>> } >>> } >>> >>> return pool; >>> } >>> >>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>> newPool) >>> >>> David >>> >>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>> I will look into this. Reopened the original CR. >>>> >>>> Naoto >>>> >>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>> Chris Hegarty wrote: >>>>>> Alan, Naoto, David >>>>>> >>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>> intermittently. >>>>>> >>>>>> If you're ok with it please review the patch (below) and I can >>>>>> push it >>>>>> to the tl repo. Job done! >>>>> I assume there is also some underlying issue in the Locale code and >>>>> this >>>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>>> test of course, just thinking that we should study the Locale code to >>>>> try to identify the deadlock or hang or whatever it is that is causing >>>>> the threads in this test not to terminate). >>>>> >>>>> -Alan >>>> From naoto.sato at oracle.com Fri Oct 7 11:40:31 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Fri, 07 Oct 2011 11:40:31 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8E24C5.9090402@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> Message-ID: <4E8F479F.6070301@oracle.com> OK here is the proposed fix (including David's suggestion for using putIfAbsent). Can anyone please review this? --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java @@ -40,6 +40,7 @@ import java.util.ServiceLoader; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.spi.LocaleServiceProvider; import sun.util.logging.PlatformLogger; @@ -57,8 +58,8 @@ * A Map that holds singleton instances of this class. Each instance holds a * set of provider implementations of a particular locale sensitive service. */ - private static Map poolOfPools = - new ConcurrentHashMap(); + private static ConcurrentMap poolOfPools = + new ConcurrentHashMap<>(); /** * A Set containing locale service providers that implement the @@ -109,7 +110,7 @@ if (pool == null) { LocaleServiceProviderPool newPool = new LocaleServiceProviderPool(providerClass); - pool = poolOfPools.put(providerClass, newPool); + pool = poolOfPools.putIfAbsent(providerClass, newPool); if (pool == null) { pool = newPool; } @@ -257,10 +258,11 @@ synchronized (LocaleServiceProviderPool.class) { if (availableJRELocales == null) { Locale[] allLocales = LocaleData.getAvailableLocales(); - availableJRELocales = new ArrayList(allLocales.length); + List tmpList = new ArrayList<>(allLocales.length); for (Locale locale : allLocales) { - availableJRELocales.add(getLookupLocale(locale)); + tmpList.add(getLookupLocale(locale)); } + availableJRELocales = tmpList; } } } --- Naoto On 10/6/11 2:59 PM, Naoto Sato wrote: > Hi David, > > Thank you for the quick look and the fix! > > Naoto > > On 10/6/11 10:09 AM, David Holmes wrote: >> Hi Chris, >> >> Thanks. Here's the bug: >> >> private List getJRELocales() { >> if (availableJRELocales == null) { >> synchronized (LocaleServiceProviderPool.class) { >> if (availableJRELocales == null) { >> Locale[] allLocales = LocaleData.getAvailableLocales(); >> availableJRELocales = new ArrayList(allLocales.length); <<==== >> YIKES we just published an empty ArrayList >> for (Locale locale : allLocales) { >> availableJRELocales.add(getLookupLocale(locale)); >> } >> } >> } >> } >> return availableJRELocales; >> } >> >> >> availableJRELocales is a static variable shared across all pools. But it >> is being published before it gets populated. We need to use a temporary >> for the new ArrayList and only assign to availableJRELocales after it is >> populated. >> >> In addition, as you mentioned, availableJRELocales needs to be volatile >> for this DCL pattern to be correct. >> >> Thanks, >> David >> >> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>> I see several exceptions, similar to the following (numbers vary): >>> >>> Exception in thread "Thread-23" >>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>> at java.util.HashSet.(HashSet.java:117) >>> at >>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>> >>> >>> >>> at Interrupter$TestThread.run(Interrupter.java:49) >> >> >>> >>> There would appear to be 156 JRE Locales ( at least on this system ), >>> modCount is incremented for each add(), but when the iterator is created >>> ( implicitly during the HastSet.addAll ) it sees a different value for >>> modCount. >>> >>> I think there is a visibility issue here. availableJRELocales is >>> volatile, but the List reference returned from getJRELocales is not. In >>> the case where availableJRELocales is not null there will be no memory >>> barrier to force a HB relationship. Or maybe I've gotten this wrong? His >>> is quite bizarre, or maybe it is just the overly complicated use of >>> locking/DCL in this class. >>> >>> -Chris. >>> >>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>> This might not be related to the CME problem, but here: >>>> >>>> public static LocaleServiceProviderPool getPool(Class>>> LocaleServiceProvider> providerClass) { >>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>> if (pool == null) { >>>> LocaleServiceProviderPool newPool = >>>> new LocaleServiceProviderPool(providerClass); >>>> pool = poolOfPools.put(providerClass, newPool); >>>> if (pool == null) { >>>> pool = newPool; >>>> } >>>> } >>>> >>>> return pool; >>>> } >>>> >>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>> newPool) >>>> >>>> David >>>> >>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>> I will look into this. Reopened the original CR. >>>>> >>>>> Naoto >>>>> >>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>> Chris Hegarty wrote: >>>>>>> Alan, Naoto, David >>>>>>> >>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>> intermittently. >>>>>>> >>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>> push it >>>>>>> to the tl repo. Job done! >>>>>> I assume there is also some underlying issue in the Locale code and >>>>>> this >>>>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>>>> test of course, just thinking that we should study the Locale code to >>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>> causing >>>>>> the threads in this test not to terminate). >>>>>> >>>>>> -Alan >>>>> > From y.umaoka at gmail.com Fri Oct 7 13:53:58 2011 From: y.umaoka at gmail.com (Yoshito Umaoka) Date: Fri, 07 Oct 2011 16:53:58 -0400 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8E24C5.9090402@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> Message-ID: <4E8F66E6.2090907@gmail.com> Thanks of all of you. This problem was introduced by the contribution from ICU project, and I'm responsible to the specific code. -Yoshito On 10/6/2011 5:59 PM, Naoto Sato wrote: > Hi David, > > Thank you for the quick look and the fix! > > Naoto > > On 10/6/11 10:09 AM, David Holmes wrote: >> Hi Chris, >> >> Thanks. Here's the bug: >> >> private List getJRELocales() { >> if (availableJRELocales == null) { >> synchronized (LocaleServiceProviderPool.class) { >> if (availableJRELocales == null) { >> Locale[] allLocales = LocaleData.getAvailableLocales(); >> availableJRELocales = new ArrayList(allLocales.length); <<==== >> YIKES we just published an empty ArrayList >> for (Locale locale : allLocales) { >> availableJRELocales.add(getLookupLocale(locale)); >> } >> } >> } >> } >> return availableJRELocales; >> } >> >> >> availableJRELocales is a static variable shared across all pools. But it >> is being published before it gets populated. We need to use a temporary >> for the new ArrayList and only assign to availableJRELocales after it is >> populated. >> >> In addition, as you mentioned, availableJRELocales needs to be volatile >> for this DCL pattern to be correct. >> >> Thanks, >> David >> >> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>> I see several exceptions, similar to the following (numbers vary): >>> >>> Exception in thread "Thread-23" >>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>> at java.util.HashSet.(HashSet.java:117) >>> at >>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>> >>> >>> >>> at Interrupter$TestThread.run(Interrupter.java:49) >> >> >>> >>> There would appear to be 156 JRE Locales ( at least on this system ), >>> modCount is incremented for each add(), but when the iterator is >>> created >>> ( implicitly during the HastSet.addAll ) it sees a different value for >>> modCount. >>> >>> I think there is a visibility issue here. availableJRELocales is >>> volatile, but the List reference returned from getJRELocales is not. In >>> the case where availableJRELocales is not null there will be no memory >>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>> His >>> is quite bizarre, or maybe it is just the overly complicated use of >>> locking/DCL in this class. >>> >>> -Chris. >>> >>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>> This might not be related to the CME problem, but here: >>>> >>>> public static LocaleServiceProviderPool getPool(Class>>> LocaleServiceProvider> providerClass) { >>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>> if (pool == null) { >>>> LocaleServiceProviderPool newPool = >>>> new LocaleServiceProviderPool(providerClass); >>>> pool = poolOfPools.put(providerClass, newPool); >>>> if (pool == null) { >>>> pool = newPool; >>>> } >>>> } >>>> >>>> return pool; >>>> } >>>> >>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>> newPool) >>>> >>>> David >>>> >>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>> I will look into this. Reopened the original CR. >>>>> >>>>> Naoto >>>>> >>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>> Chris Hegarty wrote: >>>>>>> Alan, Naoto, David >>>>>>> >>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>> intermittently. >>>>>>> >>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>> push it >>>>>>> to the tl repo. Job done! >>>>>> I assume there is also some underlying issue in the Locale code and >>>>>> this >>>>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>>>> test of course, just thinking that we should study the Locale >>>>>> code to >>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>> causing >>>>>> the threads in this test not to terminate). >>>>>> >>>>>> -Alan >>>>> > From david.holmes at oracle.com Sun Oct 9 18:22:44 2011 From: david.holmes at oracle.com (David Holmes) Date: Mon, 10 Oct 2011 11:22:44 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E8F479F.6070301@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> Message-ID: <4E9248E4.3040509@oracle.com> Hi Naoto, This looks okay to me, but is missing the change to make availableJRELocales volatile (which is needed to ensure safe publication) David On 8/10/2011 4:40 AM, Naoto Sato wrote: > OK here is the proposed fix (including David's suggestion for using > putIfAbsent). Can anyone please review this? > > --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java > +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java > @@ -40,6 +40,7 @@ > import java.util.ServiceLoader; > import java.util.Set; > import java.util.concurrent.ConcurrentHashMap; > +import java.util.concurrent.ConcurrentMap; > import java.util.spi.LocaleServiceProvider; > > import sun.util.logging.PlatformLogger; > @@ -57,8 +58,8 @@ > * A Map that holds singleton instances of this class. Each instance holds a > * set of provider implementations of a particular locale sensitive service. > */ > - private static Map poolOfPools = > - new ConcurrentHashMap(); > + private static ConcurrentMap > poolOfPools = > + new ConcurrentHashMap<>(); > > /** > * A Set containing locale service providers that implement the > @@ -109,7 +110,7 @@ > if (pool == null) { > LocaleServiceProviderPool newPool = > new LocaleServiceProviderPool(providerClass); > - pool = poolOfPools.put(providerClass, newPool); > + pool = poolOfPools.putIfAbsent(providerClass, newPool); > if (pool == null) { > pool = newPool; > } > @@ -257,10 +258,11 @@ > synchronized (LocaleServiceProviderPool.class) { > if (availableJRELocales == null) { > Locale[] allLocales = LocaleData.getAvailableLocales(); > - availableJRELocales = new ArrayList(allLocales.length); > + List tmpList = new ArrayList<>(allLocales.length); > for (Locale locale : allLocales) { > - availableJRELocales.add(getLookupLocale(locale)); > + tmpList.add(getLookupLocale(locale)); > } > + availableJRELocales = tmpList; > } > } > } > --- > > Naoto > > On 10/6/11 2:59 PM, Naoto Sato wrote: >> Hi David, >> >> Thank you for the quick look and the fix! >> >> Naoto >> >> On 10/6/11 10:09 AM, David Holmes wrote: >>> Hi Chris, >>> >>> Thanks. Here's the bug: >>> >>> private List getJRELocales() { >>> if (availableJRELocales == null) { >>> synchronized (LocaleServiceProviderPool.class) { >>> if (availableJRELocales == null) { >>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>> availableJRELocales = new ArrayList(allLocales.length); <<==== >>> YIKES we just published an empty ArrayList >>> for (Locale locale : allLocales) { >>> availableJRELocales.add(getLookupLocale(locale)); >>> } >>> } >>> } >>> } >>> return availableJRELocales; >>> } >>> >>> >>> availableJRELocales is a static variable shared across all pools. But it >>> is being published before it gets populated. We need to use a temporary >>> for the new ArrayList and only assign to availableJRELocales after it is >>> populated. >>> >>> In addition, as you mentioned, availableJRELocales needs to be volatile >>> for this DCL pattern to be correct. >>> >>> Thanks, >>> David >>> >>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>> I see several exceptions, similar to the following (numbers vary): >>>> >>>> Exception in thread "Thread-23" >>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>> at java.util.HashSet.(HashSet.java:117) >>>> at >>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>> >>>> >>>> >>>> >>>> at Interrupter$TestThread.run(Interrupter.java:49) >>> >>> >>>> >>>> There would appear to be 156 JRE Locales ( at least on this system ), >>>> modCount is incremented for each add(), but when the iterator is >>>> created >>>> ( implicitly during the HastSet.addAll ) it sees a different value for >>>> modCount. >>>> >>>> I think there is a visibility issue here. availableJRELocales is >>>> volatile, but the List reference returned from getJRELocales is not. In >>>> the case where availableJRELocales is not null there will be no memory >>>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>>> His >>>> is quite bizarre, or maybe it is just the overly complicated use of >>>> locking/DCL in this class. >>>> >>>> -Chris. >>>> >>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>> This might not be related to the CME problem, but here: >>>>> >>>>> public static LocaleServiceProviderPool getPool(Class>>>> LocaleServiceProvider> providerClass) { >>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>> if (pool == null) { >>>>> LocaleServiceProviderPool newPool = >>>>> new LocaleServiceProviderPool(providerClass); >>>>> pool = poolOfPools.put(providerClass, newPool); >>>>> if (pool == null) { >>>>> pool = newPool; >>>>> } >>>>> } >>>>> >>>>> return pool; >>>>> } >>>>> >>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>> newPool) >>>>> >>>>> David >>>>> >>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>> I will look into this. Reopened the original CR. >>>>>> >>>>>> Naoto >>>>>> >>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>> Chris Hegarty wrote: >>>>>>>> Alan, Naoto, David >>>>>>>> >>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>> intermittently. >>>>>>>> >>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>> push it >>>>>>>> to the tl repo. Job done! >>>>>>> I assume there is also some underlying issue in the Locale code and >>>>>>> this >>>>>>> might get hidden if we fix the test (I"ve no objection to fixing the >>>>>>> test of course, just thinking that we should study the Locale >>>>>>> code to >>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>> causing >>>>>>> the threads in this test not to terminate). >>>>>>> >>>>>>> -Alan >>>>>> >> > From naoto.sato at oracle.com Sun Oct 9 20:35:49 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Sun, 09 Oct 2011 20:35:49 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E9248E4.3040509@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> Message-ID: <4E926815.7020808@oracle.com> Hi David, Thank you for your review. availableJRELocales is already declared with volatile keyword in the current source, so no change is involved. Naoto On 10/9/11 6:22 PM, David Holmes wrote: > Hi Naoto, > > This looks okay to me, but is missing the change to make > availableJRELocales volatile (which is needed to ensure safe publication) > > David > > On 8/10/2011 4:40 AM, Naoto Sato wrote: >> OK here is the proposed fix (including David's suggestion for using >> putIfAbsent). Can anyone please review this? >> >> --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java >> +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java >> @@ -40,6 +40,7 @@ >> import java.util.ServiceLoader; >> import java.util.Set; >> import java.util.concurrent.ConcurrentHashMap; >> +import java.util.concurrent.ConcurrentMap; >> import java.util.spi.LocaleServiceProvider; >> >> import sun.util.logging.PlatformLogger; >> @@ -57,8 +58,8 @@ >> * A Map that holds singleton instances of this class. Each instance >> holds a >> * set of provider implementations of a particular locale sensitive >> service. >> */ >> - private static Map poolOfPools = >> - new ConcurrentHashMap(); >> + private static ConcurrentMap >> poolOfPools = >> + new ConcurrentHashMap<>(); >> >> /** >> * A Set containing locale service providers that implement the >> @@ -109,7 +110,7 @@ >> if (pool == null) { >> LocaleServiceProviderPool newPool = >> new LocaleServiceProviderPool(providerClass); >> - pool = poolOfPools.put(providerClass, newPool); >> + pool = poolOfPools.putIfAbsent(providerClass, newPool); >> if (pool == null) { >> pool = newPool; >> } >> @@ -257,10 +258,11 @@ >> synchronized (LocaleServiceProviderPool.class) { >> if (availableJRELocales == null) { >> Locale[] allLocales = LocaleData.getAvailableLocales(); >> - availableJRELocales = new ArrayList(allLocales.length); >> + List tmpList = new ArrayList<>(allLocales.length); >> for (Locale locale : allLocales) { >> - availableJRELocales.add(getLookupLocale(locale)); >> + tmpList.add(getLookupLocale(locale)); >> } >> + availableJRELocales = tmpList; >> } >> } >> } >> --- >> >> Naoto >> >> On 10/6/11 2:59 PM, Naoto Sato wrote: >>> Hi David, >>> >>> Thank you for the quick look and the fix! >>> >>> Naoto >>> >>> On 10/6/11 10:09 AM, David Holmes wrote: >>>> Hi Chris, >>>> >>>> Thanks. Here's the bug: >>>> >>>> private List getJRELocales() { >>>> if (availableJRELocales == null) { >>>> synchronized (LocaleServiceProviderPool.class) { >>>> if (availableJRELocales == null) { >>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>> availableJRELocales = new ArrayList(allLocales.length); <<==== >>>> YIKES we just published an empty ArrayList >>>> for (Locale locale : allLocales) { >>>> availableJRELocales.add(getLookupLocale(locale)); >>>> } >>>> } >>>> } >>>> } >>>> return availableJRELocales; >>>> } >>>> >>>> >>>> availableJRELocales is a static variable shared across all pools. >>>> But it >>>> is being published before it gets populated. We need to use a temporary >>>> for the new ArrayList and only assign to availableJRELocales after >>>> it is >>>> populated. >>>> >>>> In addition, as you mentioned, availableJRELocales needs to be volatile >>>> for this DCL pattern to be correct. >>>> >>>> Thanks, >>>> David >>>> >>>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>>> I see several exceptions, similar to the following (numbers vary): >>>>> >>>>> Exception in thread "Thread-23" >>>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>>> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>>> at java.util.HashSet.(HashSet.java:117) >>>>> at >>>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> at Interrupter$TestThread.run(Interrupter.java:49) >>>> >>>> >>>>> >>>>> There would appear to be 156 JRE Locales ( at least on this system ), >>>>> modCount is incremented for each add(), but when the iterator is >>>>> created >>>>> ( implicitly during the HastSet.addAll ) it sees a different value for >>>>> modCount. >>>>> >>>>> I think there is a visibility issue here. availableJRELocales is >>>>> volatile, but the List reference returned from getJRELocales is >>>>> not. In >>>>> the case where availableJRELocales is not null there will be no memory >>>>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>>>> His >>>>> is quite bizarre, or maybe it is just the overly complicated use of >>>>> locking/DCL in this class. >>>>> >>>>> -Chris. >>>>> >>>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>>> This might not be related to the CME problem, but here: >>>>>> >>>>>> public static LocaleServiceProviderPool getPool(Class>>>>> LocaleServiceProvider> providerClass) { >>>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>>> if (pool == null) { >>>>>> LocaleServiceProviderPool newPool = >>>>>> new LocaleServiceProviderPool(providerClass); >>>>>> pool = poolOfPools.put(providerClass, newPool); >>>>>> if (pool == null) { >>>>>> pool = newPool; >>>>>> } >>>>>> } >>>>>> >>>>>> return pool; >>>>>> } >>>>>> >>>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>>> newPool) >>>>>> >>>>>> David >>>>>> >>>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>>> I will look into this. Reopened the original CR. >>>>>>> >>>>>>> Naoto >>>>>>> >>>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>>> Chris Hegarty wrote: >>>>>>>>> Alan, Naoto, David >>>>>>>>> >>>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>>> intermittently. >>>>>>>>> >>>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>>> push it >>>>>>>>> to the tl repo. Job done! >>>>>>>> I assume there is also some underlying issue in the Locale code and >>>>>>>> this >>>>>>>> might get hidden if we fix the test (I"ve no objection to fixing >>>>>>>> the >>>>>>>> test of course, just thinking that we should study the Locale >>>>>>>> code to >>>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>>> causing >>>>>>>> the threads in this test not to terminate). >>>>>>>> >>>>>>>> -Alan >>>>>>> >>> >> From david.holmes at oracle.com Sun Oct 9 21:44:03 2011 From: david.holmes at oracle.com (David Holmes) Date: Mon, 10 Oct 2011 14:44:03 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E926815.7020808@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> Message-ID: <4E927813.1000900@oracle.com> On 10/10/2011 1:35 PM, Naoto Sato wrote: > Hi David, > > Thank you for your review. availableJRELocales is already declared with > volatile keyword in the current source, so no change is involved. Sorry - my mistake. I misread something Chris posted earlier. Cheers, David > Naoto > > On 10/9/11 6:22 PM, David Holmes wrote: >> Hi Naoto, >> >> This looks okay to me, but is missing the change to make >> availableJRELocales volatile (which is needed to ensure safe publication) >> >> David >> >> On 8/10/2011 4:40 AM, Naoto Sato wrote: >>> OK here is the proposed fix (including David's suggestion for using >>> putIfAbsent). Can anyone please review this? >>> >>> --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java >>> +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java >>> @@ -40,6 +40,7 @@ >>> import java.util.ServiceLoader; >>> import java.util.Set; >>> import java.util.concurrent.ConcurrentHashMap; >>> +import java.util.concurrent.ConcurrentMap; >>> import java.util.spi.LocaleServiceProvider; >>> >>> import sun.util.logging.PlatformLogger; >>> @@ -57,8 +58,8 @@ >>> * A Map that holds singleton instances of this class. Each instance >>> holds a >>> * set of provider implementations of a particular locale sensitive >>> service. >>> */ >>> - private static Map poolOfPools = >>> - new ConcurrentHashMap(); >>> + private static ConcurrentMap >>> poolOfPools = >>> + new ConcurrentHashMap<>(); >>> >>> /** >>> * A Set containing locale service providers that implement the >>> @@ -109,7 +110,7 @@ >>> if (pool == null) { >>> LocaleServiceProviderPool newPool = >>> new LocaleServiceProviderPool(providerClass); >>> - pool = poolOfPools.put(providerClass, newPool); >>> + pool = poolOfPools.putIfAbsent(providerClass, newPool); >>> if (pool == null) { >>> pool = newPool; >>> } >>> @@ -257,10 +258,11 @@ >>> synchronized (LocaleServiceProviderPool.class) { >>> if (availableJRELocales == null) { >>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>> - availableJRELocales = new ArrayList(allLocales.length); >>> + List tmpList = new ArrayList<>(allLocales.length); >>> for (Locale locale : allLocales) { >>> - availableJRELocales.add(getLookupLocale(locale)); >>> + tmpList.add(getLookupLocale(locale)); >>> } >>> + availableJRELocales = tmpList; >>> } >>> } >>> } >>> --- >>> >>> Naoto >>> >>> On 10/6/11 2:59 PM, Naoto Sato wrote: >>>> Hi David, >>>> >>>> Thank you for the quick look and the fix! >>>> >>>> Naoto >>>> >>>> On 10/6/11 10:09 AM, David Holmes wrote: >>>>> Hi Chris, >>>>> >>>>> Thanks. Here's the bug: >>>>> >>>>> private List getJRELocales() { >>>>> if (availableJRELocales == null) { >>>>> synchronized (LocaleServiceProviderPool.class) { >>>>> if (availableJRELocales == null) { >>>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>>> availableJRELocales = new ArrayList(allLocales.length); <<==== >>>>> YIKES we just published an empty ArrayList >>>>> for (Locale locale : allLocales) { >>>>> availableJRELocales.add(getLookupLocale(locale)); >>>>> } >>>>> } >>>>> } >>>>> } >>>>> return availableJRELocales; >>>>> } >>>>> >>>>> >>>>> availableJRELocales is a static variable shared across all pools. >>>>> But it >>>>> is being published before it gets populated. We need to use a >>>>> temporary >>>>> for the new ArrayList and only assign to availableJRELocales after >>>>> it is >>>>> populated. >>>>> >>>>> In addition, as you mentioned, availableJRELocales needs to be >>>>> volatile >>>>> for this DCL pattern to be correct. >>>>> >>>>> Thanks, >>>>> David >>>>> >>>>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>>>> I see several exceptions, similar to the following (numbers vary): >>>>>> >>>>>> Exception in thread "Thread-23" >>>>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>>>> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>>>> at java.util.HashSet.(HashSet.java:117) >>>>>> at >>>>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> at Interrupter$TestThread.run(Interrupter.java:49) >>>>> >>>>> >>>>>> >>>>>> There would appear to be 156 JRE Locales ( at least on this system ), >>>>>> modCount is incremented for each add(), but when the iterator is >>>>>> created >>>>>> ( implicitly during the HastSet.addAll ) it sees a different value >>>>>> for >>>>>> modCount. >>>>>> >>>>>> I think there is a visibility issue here. availableJRELocales is >>>>>> volatile, but the List reference returned from getJRELocales is >>>>>> not. In >>>>>> the case where availableJRELocales is not null there will be no >>>>>> memory >>>>>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>>>>> His >>>>>> is quite bizarre, or maybe it is just the overly complicated use of >>>>>> locking/DCL in this class. >>>>>> >>>>>> -Chris. >>>>>> >>>>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>>>> This might not be related to the CME problem, but here: >>>>>>> >>>>>>> public static LocaleServiceProviderPool getPool(Class>>>>>> LocaleServiceProvider> providerClass) { >>>>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>>>> if (pool == null) { >>>>>>> LocaleServiceProviderPool newPool = >>>>>>> new LocaleServiceProviderPool(providerClass); >>>>>>> pool = poolOfPools.put(providerClass, newPool); >>>>>>> if (pool == null) { >>>>>>> pool = newPool; >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> return pool; >>>>>>> } >>>>>>> >>>>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>>>> newPool) >>>>>>> >>>>>>> David >>>>>>> >>>>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>>>> I will look into this. Reopened the original CR. >>>>>>>> >>>>>>>> Naoto >>>>>>>> >>>>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>>>> Chris Hegarty wrote: >>>>>>>>>> Alan, Naoto, David >>>>>>>>>> >>>>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>>>> intermittently. >>>>>>>>>> >>>>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>>>> push it >>>>>>>>>> to the tl repo. Job done! >>>>>>>>> I assume there is also some underlying issue in the Locale code >>>>>>>>> and >>>>>>>>> this >>>>>>>>> might get hidden if we fix the test (I"ve no objection to fixing >>>>>>>>> the >>>>>>>>> test of course, just thinking that we should study the Locale >>>>>>>>> code to >>>>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>>>> causing >>>>>>>>> the threads in this test not to terminate). >>>>>>>>> >>>>>>>>> -Alan >>>>>>>> >>>> >>> > From chris.hegarty at oracle.com Mon Oct 10 07:24:02 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 10 Oct 2011 15:24:02 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E927813.1000900@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> Message-ID: <4E930002.8020704@oracle.com> Thumbs up from me too. -Chris. On 10/10/2011 05:44, David Holmes wrote: > On 10/10/2011 1:35 PM, Naoto Sato wrote: >> Hi David, >> >> Thank you for your review. availableJRELocales is already declared with >> volatile keyword in the current source, so no change is involved. > > Sorry - my mistake. I misread something Chris posted earlier. > > Cheers, > David > >> Naoto >> >> On 10/9/11 6:22 PM, David Holmes wrote: >>> Hi Naoto, >>> >>> This looks okay to me, but is missing the change to make >>> availableJRELocales volatile (which is needed to ensure safe >>> publication) >>> >>> David >>> >>> On 8/10/2011 4:40 AM, Naoto Sato wrote: >>>> OK here is the proposed fix (including David's suggestion for using >>>> putIfAbsent). Can anyone please review this? >>>> >>>> --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>> +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>> @@ -40,6 +40,7 @@ >>>> import java.util.ServiceLoader; >>>> import java.util.Set; >>>> import java.util.concurrent.ConcurrentHashMap; >>>> +import java.util.concurrent.ConcurrentMap; >>>> import java.util.spi.LocaleServiceProvider; >>>> >>>> import sun.util.logging.PlatformLogger; >>>> @@ -57,8 +58,8 @@ >>>> * A Map that holds singleton instances of this class. Each instance >>>> holds a >>>> * set of provider implementations of a particular locale sensitive >>>> service. >>>> */ >>>> - private static Map poolOfPools = >>>> - new ConcurrentHashMap(); >>>> + private static ConcurrentMap >>>> poolOfPools = >>>> + new ConcurrentHashMap<>(); >>>> >>>> /** >>>> * A Set containing locale service providers that implement the >>>> @@ -109,7 +110,7 @@ >>>> if (pool == null) { >>>> LocaleServiceProviderPool newPool = >>>> new LocaleServiceProviderPool(providerClass); >>>> - pool = poolOfPools.put(providerClass, newPool); >>>> + pool = poolOfPools.putIfAbsent(providerClass, newPool); >>>> if (pool == null) { >>>> pool = newPool; >>>> } >>>> @@ -257,10 +258,11 @@ >>>> synchronized (LocaleServiceProviderPool.class) { >>>> if (availableJRELocales == null) { >>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>> - availableJRELocales = new ArrayList(allLocales.length); >>>> + List tmpList = new ArrayList<>(allLocales.length); >>>> for (Locale locale : allLocales) { >>>> - availableJRELocales.add(getLookupLocale(locale)); >>>> + tmpList.add(getLookupLocale(locale)); >>>> } >>>> + availableJRELocales = tmpList; >>>> } >>>> } >>>> } >>>> --- >>>> >>>> Naoto >>>> >>>> On 10/6/11 2:59 PM, Naoto Sato wrote: >>>>> Hi David, >>>>> >>>>> Thank you for the quick look and the fix! >>>>> >>>>> Naoto >>>>> >>>>> On 10/6/11 10:09 AM, David Holmes wrote: >>>>>> Hi Chris, >>>>>> >>>>>> Thanks. Here's the bug: >>>>>> >>>>>> private List getJRELocales() { >>>>>> if (availableJRELocales == null) { >>>>>> synchronized (LocaleServiceProviderPool.class) { >>>>>> if (availableJRELocales == null) { >>>>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>>>> availableJRELocales = new ArrayList(allLocales.length); >>>>>> <<==== >>>>>> YIKES we just published an empty ArrayList >>>>>> for (Locale locale : allLocales) { >>>>>> availableJRELocales.add(getLookupLocale(locale)); >>>>>> } >>>>>> } >>>>>> } >>>>>> } >>>>>> return availableJRELocales; >>>>>> } >>>>>> >>>>>> >>>>>> availableJRELocales is a static variable shared across all pools. >>>>>> But it >>>>>> is being published before it gets populated. We need to use a >>>>>> temporary >>>>>> for the new ArrayList and only assign to availableJRELocales after >>>>>> it is >>>>>> populated. >>>>>> >>>>>> In addition, as you mentioned, availableJRELocales needs to be >>>>>> volatile >>>>>> for this DCL pattern to be correct. >>>>>> >>>>>> Thanks, >>>>>> David >>>>>> >>>>>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>>>>> I see several exceptions, similar to the following (numbers vary): >>>>>>> >>>>>>> Exception in thread "Thread-23" >>>>>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>>>>> at >>>>>>> java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>>>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>>>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>>>>> at java.util.HashSet.(HashSet.java:117) >>>>>>> at >>>>>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> at Interrupter$TestThread.run(Interrupter.java:49) >>>>>> >>>>>> >>>>>>> >>>>>>> There would appear to be 156 JRE Locales ( at least on this >>>>>>> system ), >>>>>>> modCount is incremented for each add(), but when the iterator is >>>>>>> created >>>>>>> ( implicitly during the HastSet.addAll ) it sees a different value >>>>>>> for >>>>>>> modCount. >>>>>>> >>>>>>> I think there is a visibility issue here. availableJRELocales is >>>>>>> volatile, but the List reference returned from getJRELocales is >>>>>>> not. In >>>>>>> the case where availableJRELocales is not null there will be no >>>>>>> memory >>>>>>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>>>>>> His >>>>>>> is quite bizarre, or maybe it is just the overly complicated use of >>>>>>> locking/DCL in this class. >>>>>>> >>>>>>> -Chris. >>>>>>> >>>>>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>>>>> This might not be related to the CME problem, but here: >>>>>>>> >>>>>>>> public static LocaleServiceProviderPool getPool(Class>>>>>>> LocaleServiceProvider> providerClass) { >>>>>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>>>>> if (pool == null) { >>>>>>>> LocaleServiceProviderPool newPool = >>>>>>>> new LocaleServiceProviderPool(providerClass); >>>>>>>> pool = poolOfPools.put(providerClass, newPool); >>>>>>>> if (pool == null) { >>>>>>>> pool = newPool; >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> return pool; >>>>>>>> } >>>>>>>> >>>>>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>>>>> newPool) >>>>>>>> >>>>>>>> David >>>>>>>> >>>>>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>>>>> I will look into this. Reopened the original CR. >>>>>>>>> >>>>>>>>> Naoto >>>>>>>>> >>>>>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>>>>> Chris Hegarty wrote: >>>>>>>>>>> Alan, Naoto, David >>>>>>>>>>> >>>>>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>>>>> intermittently. >>>>>>>>>>> >>>>>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>>>>> push it >>>>>>>>>>> to the tl repo. Job done! >>>>>>>>>> I assume there is also some underlying issue in the Locale code >>>>>>>>>> and >>>>>>>>>> this >>>>>>>>>> might get hidden if we fix the test (I"ve no objection to fixing >>>>>>>>>> the >>>>>>>>>> test of course, just thinking that we should study the Locale >>>>>>>>>> code to >>>>>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>>>>> causing >>>>>>>>>> the threads in this test not to terminate). >>>>>>>>>> >>>>>>>>>> -Alan >>>>>>>>> >>>>> >>>> >> From chris.hegarty at oracle.com Mon Oct 10 07:27:29 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 10 Oct 2011 15:27:29 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E927813.1000900@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> Message-ID: <4E9300D1.9000704@oracle.com> Naoto, Forgot to add, you can probably just push the changes for the test along with your source changes. I modified it a little since last review. Reproduces one in about every ten times on one of our Dual core Linux x64 boxes. >: hg diff Bug6989440.java diff -r 1e89a13d9d8f test/java/util/Locale/Bug6989440.java --- a/test/java/util/Locale/Bug6989440.java Mon Oct 10 10:38:35 2011 +0100 +++ b/test/java/util/Locale/Bug6989440.java Mon Oct 10 15:21:41 2011 +0100 @@ -37,26 +37,49 @@ import sun.util.LocaleServiceProviderPoo import sun.util.LocaleServiceProviderPool; public class Bug6989440 { - public static void main(String[] args) { - TestThread t1 = new TestThread(LocaleNameProvider.class); - TestThread t2 = new TestThread(TimeZoneNameProvider.class); - TestThread t3 = new TestThread(DateFormatProvider.class); + static volatile boolean failed; // false + static final int THREADS = 50; - t1.start(); - t2.start(); - t3.start(); + public static void main(String[] args) throws Exception { + Thread[] threads = new Thread[THREADS]; + for (int i=0; i cls; + private static int count; public TestThread(Class providerClass) { cls = providerClass; } + public TestThread() { + int which = count++ % 3; + switch (which) { + case 0 : cls = LocaleNameProvider.class; break; + case 1 : cls = TimeZoneNameProvider.class; break; + case 2 : cls = DateFormatProvider.class; break; + default : throw new AssertionError("Should not reach here"); + } + } + public void run() { - LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(cls); - pool.getAvailableLocales(); + try { + LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(cls); + pool.getAvailableLocales(); + } catch (Exception e) { + System.out.println(e); + e.printStackTrace(); + failed = true; + } } } } -Chris. On 10/10/2011 05:44, David Holmes wrote: > On 10/10/2011 1:35 PM, Naoto Sato wrote: >> Hi David, >> >> Thank you for your review. availableJRELocales is already declared with >> volatile keyword in the current source, so no change is involved. > > Sorry - my mistake. I misread something Chris posted earlier. > > Cheers, > David > >> Naoto >> >> On 10/9/11 6:22 PM, David Holmes wrote: >>> Hi Naoto, >>> >>> This looks okay to me, but is missing the change to make >>> availableJRELocales volatile (which is needed to ensure safe >>> publication) >>> >>> David >>> >>> On 8/10/2011 4:40 AM, Naoto Sato wrote: >>>> OK here is the proposed fix (including David's suggestion for using >>>> putIfAbsent). Can anyone please review this? >>>> >>>> --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>> +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>> @@ -40,6 +40,7 @@ >>>> import java.util.ServiceLoader; >>>> import java.util.Set; >>>> import java.util.concurrent.ConcurrentHashMap; >>>> +import java.util.concurrent.ConcurrentMap; >>>> import java.util.spi.LocaleServiceProvider; >>>> >>>> import sun.util.logging.PlatformLogger; >>>> @@ -57,8 +58,8 @@ >>>> * A Map that holds singleton instances of this class. Each instance >>>> holds a >>>> * set of provider implementations of a particular locale sensitive >>>> service. >>>> */ >>>> - private static Map poolOfPools = >>>> - new ConcurrentHashMap(); >>>> + private static ConcurrentMap >>>> poolOfPools = >>>> + new ConcurrentHashMap<>(); >>>> >>>> /** >>>> * A Set containing locale service providers that implement the >>>> @@ -109,7 +110,7 @@ >>>> if (pool == null) { >>>> LocaleServiceProviderPool newPool = >>>> new LocaleServiceProviderPool(providerClass); >>>> - pool = poolOfPools.put(providerClass, newPool); >>>> + pool = poolOfPools.putIfAbsent(providerClass, newPool); >>>> if (pool == null) { >>>> pool = newPool; >>>> } >>>> @@ -257,10 +258,11 @@ >>>> synchronized (LocaleServiceProviderPool.class) { >>>> if (availableJRELocales == null) { >>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>> - availableJRELocales = new ArrayList(allLocales.length); >>>> + List tmpList = new ArrayList<>(allLocales.length); >>>> for (Locale locale : allLocales) { >>>> - availableJRELocales.add(getLookupLocale(locale)); >>>> + tmpList.add(getLookupLocale(locale)); >>>> } >>>> + availableJRELocales = tmpList; >>>> } >>>> } >>>> } >>>> --- >>>> >>>> Naoto >>>> >>>> On 10/6/11 2:59 PM, Naoto Sato wrote: >>>>> Hi David, >>>>> >>>>> Thank you for the quick look and the fix! >>>>> >>>>> Naoto >>>>> >>>>> On 10/6/11 10:09 AM, David Holmes wrote: >>>>>> Hi Chris, >>>>>> >>>>>> Thanks. Here's the bug: >>>>>> >>>>>> private List getJRELocales() { >>>>>> if (availableJRELocales == null) { >>>>>> synchronized (LocaleServiceProviderPool.class) { >>>>>> if (availableJRELocales == null) { >>>>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>>>> availableJRELocales = new ArrayList(allLocales.length); >>>>>> <<==== >>>>>> YIKES we just published an empty ArrayList >>>>>> for (Locale locale : allLocales) { >>>>>> availableJRELocales.add(getLookupLocale(locale)); >>>>>> } >>>>>> } >>>>>> } >>>>>> } >>>>>> return availableJRELocales; >>>>>> } >>>>>> >>>>>> >>>>>> availableJRELocales is a static variable shared across all pools. >>>>>> But it >>>>>> is being published before it gets populated. We need to use a >>>>>> temporary >>>>>> for the new ArrayList and only assign to availableJRELocales after >>>>>> it is >>>>>> populated. >>>>>> >>>>>> In addition, as you mentioned, availableJRELocales needs to be >>>>>> volatile >>>>>> for this DCL pattern to be correct. >>>>>> >>>>>> Thanks, >>>>>> David >>>>>> >>>>>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>>>>> I see several exceptions, similar to the following (numbers vary): >>>>>>> >>>>>>> Exception in thread "Thread-23" >>>>>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>>>>> at >>>>>>> java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>>>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>>>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>>>>> at java.util.HashSet.(HashSet.java:117) >>>>>>> at >>>>>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> at Interrupter$TestThread.run(Interrupter.java:49) >>>>>> >>>>>> >>>>>>> >>>>>>> There would appear to be 156 JRE Locales ( at least on this >>>>>>> system ), >>>>>>> modCount is incremented for each add(), but when the iterator is >>>>>>> created >>>>>>> ( implicitly during the HastSet.addAll ) it sees a different value >>>>>>> for >>>>>>> modCount. >>>>>>> >>>>>>> I think there is a visibility issue here. availableJRELocales is >>>>>>> volatile, but the List reference returned from getJRELocales is >>>>>>> not. In >>>>>>> the case where availableJRELocales is not null there will be no >>>>>>> memory >>>>>>> barrier to force a HB relationship. Or maybe I've gotten this wrong? >>>>>>> His >>>>>>> is quite bizarre, or maybe it is just the overly complicated use of >>>>>>> locking/DCL in this class. >>>>>>> >>>>>>> -Chris. >>>>>>> >>>>>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>>>>> This might not be related to the CME problem, but here: >>>>>>>> >>>>>>>> public static LocaleServiceProviderPool getPool(Class>>>>>>> LocaleServiceProvider> providerClass) { >>>>>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>>>>> if (pool == null) { >>>>>>>> LocaleServiceProviderPool newPool = >>>>>>>> new LocaleServiceProviderPool(providerClass); >>>>>>>> pool = poolOfPools.put(providerClass, newPool); >>>>>>>> if (pool == null) { >>>>>>>> pool = newPool; >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> return pool; >>>>>>>> } >>>>>>>> >>>>>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>>>>> newPool) >>>>>>>> >>>>>>>> David >>>>>>>> >>>>>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>>>>> I will look into this. Reopened the original CR. >>>>>>>>> >>>>>>>>> Naoto >>>>>>>>> >>>>>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>>>>> Chris Hegarty wrote: >>>>>>>>>>> Alan, Naoto, David >>>>>>>>>>> >>>>>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>>>>> intermittently. >>>>>>>>>>> >>>>>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>>>>> push it >>>>>>>>>>> to the tl repo. Job done! >>>>>>>>>> I assume there is also some underlying issue in the Locale code >>>>>>>>>> and >>>>>>>>>> this >>>>>>>>>> might get hidden if we fix the test (I"ve no objection to fixing >>>>>>>>>> the >>>>>>>>>> test of course, just thinking that we should study the Locale >>>>>>>>>> code to >>>>>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>>>>> causing >>>>>>>>>> the threads in this test not to terminate). >>>>>>>>>> >>>>>>>>>> -Alan >>>>>>>>> >>>>> >>>> >> From Alan.Bateman at oracle.com Mon Oct 10 07:52:13 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 10 Oct 2011 15:52:13 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E9300D1.9000704@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> Message-ID: <4E93069D.1040609@oracle.com> Chris Hegarty wrote: > Naoto, > > Forgot to add, you can probably just push the changes for the test > along with your source changes. I modified it a little since last > review. Reproduces one in about every ten times on one of our Dual > core Linux x64 boxes. Is it the CME that duplicates for you? I'm still wondering about the original failure mode which was a timeout, presumably a looping thread or deadlock or something else. -Alan. From chris.hegarty at oracle.com Mon Oct 10 08:44:45 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 10 Oct 2011 16:44:45 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E93069D.1040609@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> <4E93069D.1040609@oracle.com> Message-ID: <4E9312ED.8020303@oracle.com> On 10/10/2011 15:52, Alan Bateman wrote: > Chris Hegarty wrote: >> Naoto, >> >> Forgot to add, you can probably just push the changes for the test >> along with your source changes. I modified it a little since last >> review. Reproduces one in about every ten times on one of our Dual >> core Linux x64 boxes. > Is it the CME that duplicates for you? I'm still wondering about the > original failure mode which was a timeout, presumably a looping thread > or deadlock or something else. This duplicates CME and deadlock. The deadlock would appear to happen because jtreg tries to cleanup the thread that throws the CME, uncaught exception. Look for 0xea769858 below. "Thread-7" prio=10 tid=0x0a026c00 nid=0x3c30 in Object.wait() [0xd00fe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0xea769858> (a java.lang.Thread) at java.lang.Thread.join(Thread.java:1266) - locked <0xea769858> (a java.lang.Thread) at com.sun.javatest.regtest.MainAction$SameVMThreadGroup.cleanup(MainAction.java:760) at com.sun.javatest.regtest.MainAction$SameVMThreadGroup.uncaughtException(MainAction.java:727) - locked <0xea766988> (a com.sun.javatest.regtest.MainAction$SameVMThreadGroup) at java.lang.Thread.dispatchUncaughtException(Thread.java:1964) "Thread-6" prio=10 tid=0x0a022000 nid=0x3c2f waiting for monitor entry [0xd0256000] java.lang.Thread.State: BLOCKED (on object monitor) at java.lang.ThreadGroup.threadTerminated(ThreadGroup.java:942) - waiting to lock <0xea766988> (a com.sun.javatest.regtest.MainAction$SameVMThreadGroup) at java.lang.Thread.exit(Thread.java:732) "SameVMThread" prio=10 tid=0xd058a000 nid=0x3c2e waiting for monitor entry [0xd02a6000] java.lang.Thread.State: BLOCKED (on object monitor) at java.lang.ThreadGroup.add(ThreadGroup.java:885) - waiting to lock <0xea766988> (a com.sun.javatest.regtest.MainAction$SameVMThreadGroup) at java.lang.Thread.start(Thread.java:687) - locked <0xea790160> (a Bug6989440$TestThread) at Bug6989440.main(Bug6989440.java:47) 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:601) at com.sun.javatest.regtest.MainAction$SameVMRunnable.run(MainAction.java:680) at java.lang.Thread.run(Thread.java:722) ..... -Chris. > > -Alan. From naoto.sato at oracle.com Mon Oct 10 10:39:07 2011 From: naoto.sato at oracle.com (Naoto Sato) Date: Mon, 10 Oct 2011 10:39:07 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E9300D1.9000704@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> Message-ID: <4E932DBB.9040400@oracle.com> Thanks, Chris. Will do it after confirming all's well with the JPRT (currently it's down). Naoto On 10/10/11 7:27 AM, Chris Hegarty wrote: > Naoto, > > Forgot to add, you can probably just push the changes for the test along > with your source changes. I modified it a little since last review. > Reproduces one in about every ten times on one of our Dual core Linux > x64 boxes. > > > >: hg diff Bug6989440.java > diff -r 1e89a13d9d8f test/java/util/Locale/Bug6989440.java > --- a/test/java/util/Locale/Bug6989440.java Mon Oct 10 10:38:35 2011 +0100 > +++ b/test/java/util/Locale/Bug6989440.java Mon Oct 10 15:21:41 2011 +0100 > @@ -37,26 +37,49 @@ import sun.util.LocaleServiceProviderPoo > import sun.util.LocaleServiceProviderPool; > > public class Bug6989440 { > - public static void main(String[] args) { > - TestThread t1 = new TestThread(LocaleNameProvider.class); > - TestThread t2 = new TestThread(TimeZoneNameProvider.class); > - TestThread t3 = new TestThread(DateFormatProvider.class); > + static volatile boolean failed; // false > + static final int THREADS = 50; > > - t1.start(); > - t2.start(); > - t3.start(); > + public static void main(String[] args) throws Exception { > + Thread[] threads = new Thread[THREADS]; > + for (int i=0; i + threads[i] = new TestThread(); > + for (int i=0; i + threads[i].start(); > + for (int i=0; i + threads[i].join(); > + > + if (failed) > + throw new RuntimeException("Failed: check output"); > } > > static class TestThread extends Thread { > private Class cls; > + private static int count; > > public TestThread(Class providerClass) { > cls = providerClass; > } > > + public TestThread() { > + int which = count++ % 3; > + switch (which) { > + case 0 : cls = LocaleNameProvider.class; break; > + case 1 : cls = TimeZoneNameProvider.class; break; > + case 2 : cls = DateFormatProvider.class; break; > + default : throw new AssertionError("Should not reach here"); > + } > + } > + > public void run() { > - LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(cls); > - pool.getAvailableLocales(); > + try { > + LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(cls); > + pool.getAvailableLocales(); > + } catch (Exception e) { > + System.out.println(e); > + e.printStackTrace(); > + failed = true; > + } > } > } > } > > -Chris. > > On 10/10/2011 05:44, David Holmes wrote: >> On 10/10/2011 1:35 PM, Naoto Sato wrote: >>> Hi David, >>> >>> Thank you for your review. availableJRELocales is already declared with >>> volatile keyword in the current source, so no change is involved. >> >> Sorry - my mistake. I misread something Chris posted earlier. >> >> Cheers, >> David >> >>> Naoto >>> >>> On 10/9/11 6:22 PM, David Holmes wrote: >>>> Hi Naoto, >>>> >>>> This looks okay to me, but is missing the change to make >>>> availableJRELocales volatile (which is needed to ensure safe >>>> publication) >>>> >>>> David >>>> >>>> On 8/10/2011 4:40 AM, Naoto Sato wrote: >>>>> OK here is the proposed fix (including David's suggestion for using >>>>> putIfAbsent). Can anyone please review this? >>>>> >>>>> --- a/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>>> +++ b/src/share/classes/sun/util/LocaleServiceProviderPool.java >>>>> @@ -40,6 +40,7 @@ >>>>> import java.util.ServiceLoader; >>>>> import java.util.Set; >>>>> import java.util.concurrent.ConcurrentHashMap; >>>>> +import java.util.concurrent.ConcurrentMap; >>>>> import java.util.spi.LocaleServiceProvider; >>>>> >>>>> import sun.util.logging.PlatformLogger; >>>>> @@ -57,8 +58,8 @@ >>>>> * A Map that holds singleton instances of this class. Each instance >>>>> holds a >>>>> * set of provider implementations of a particular locale sensitive >>>>> service. >>>>> */ >>>>> - private static Map poolOfPools = >>>>> - new ConcurrentHashMap(); >>>>> + private static ConcurrentMap >>>>> poolOfPools = >>>>> + new ConcurrentHashMap<>(); >>>>> >>>>> /** >>>>> * A Set containing locale service providers that implement the >>>>> @@ -109,7 +110,7 @@ >>>>> if (pool == null) { >>>>> LocaleServiceProviderPool newPool = >>>>> new LocaleServiceProviderPool(providerClass); >>>>> - pool = poolOfPools.put(providerClass, newPool); >>>>> + pool = poolOfPools.putIfAbsent(providerClass, newPool); >>>>> if (pool == null) { >>>>> pool = newPool; >>>>> } >>>>> @@ -257,10 +258,11 @@ >>>>> synchronized (LocaleServiceProviderPool.class) { >>>>> if (availableJRELocales == null) { >>>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>>> - availableJRELocales = new ArrayList(allLocales.length); >>>>> + List tmpList = new ArrayList<>(allLocales.length); >>>>> for (Locale locale : allLocales) { >>>>> - availableJRELocales.add(getLookupLocale(locale)); >>>>> + tmpList.add(getLookupLocale(locale)); >>>>> } >>>>> + availableJRELocales = tmpList; >>>>> } >>>>> } >>>>> } >>>>> --- >>>>> >>>>> Naoto >>>>> >>>>> On 10/6/11 2:59 PM, Naoto Sato wrote: >>>>>> Hi David, >>>>>> >>>>>> Thank you for the quick look and the fix! >>>>>> >>>>>> Naoto >>>>>> >>>>>> On 10/6/11 10:09 AM, David Holmes wrote: >>>>>>> Hi Chris, >>>>>>> >>>>>>> Thanks. Here's the bug: >>>>>>> >>>>>>> private List getJRELocales() { >>>>>>> if (availableJRELocales == null) { >>>>>>> synchronized (LocaleServiceProviderPool.class) { >>>>>>> if (availableJRELocales == null) { >>>>>>> Locale[] allLocales = LocaleData.getAvailableLocales(); >>>>>>> availableJRELocales = new ArrayList(allLocales.length); >>>>>>> <<==== >>>>>>> YIKES we just published an empty ArrayList >>>>>>> for (Locale locale : allLocales) { >>>>>>> availableJRELocales.add(getLookupLocale(locale)); >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> return availableJRELocales; >>>>>>> } >>>>>>> >>>>>>> >>>>>>> availableJRELocales is a static variable shared across all pools. >>>>>>> But it >>>>>>> is being published before it gets populated. We need to use a >>>>>>> temporary >>>>>>> for the new ArrayList and only assign to availableJRELocales after >>>>>>> it is >>>>>>> populated. >>>>>>> >>>>>>> In addition, as you mentioned, availableJRELocales needs to be >>>>>>> volatile >>>>>>> for this DCL pattern to be correct. >>>>>>> >>>>>>> Thanks, >>>>>>> David >>>>>>> >>>>>>> On 6/10/2011 9:02 PM, Chris Hegarty wrote: >>>>>>>> I see several exceptions, similar to the following (numbers vary): >>>>>>>> >>>>>>>> Exception in thread "Thread-23" >>>>>>>> java.util.ConcurrentModificationException: Expected: 96, got: 156 >>>>>>>> at >>>>>>>> java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) >>>>>>>> at java.util.ArrayList$Itr.next(ArrayList.java:791) >>>>>>>> at java.util.AbstractCollection.addAll(AbstractCollection.java:333) >>>>>>>> at java.util.HashSet.(HashSet.java:117) >>>>>>>> at >>>>>>>> sun.util.LocaleServiceProviderPool.getAvailableLocales(LocaleServiceProviderPool.java:206) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> at Interrupter$TestThread.run(Interrupter.java:49) >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> There would appear to be 156 JRE Locales ( at least on this >>>>>>>> system ), >>>>>>>> modCount is incremented for each add(), but when the iterator is >>>>>>>> created >>>>>>>> ( implicitly during the HastSet.addAll ) it sees a different value >>>>>>>> for >>>>>>>> modCount. >>>>>>>> >>>>>>>> I think there is a visibility issue here. availableJRELocales is >>>>>>>> volatile, but the List reference returned from getJRELocales is >>>>>>>> not. In >>>>>>>> the case where availableJRELocales is not null there will be no >>>>>>>> memory >>>>>>>> barrier to force a HB relationship. Or maybe I've gotten this >>>>>>>> wrong? >>>>>>>> His >>>>>>>> is quite bizarre, or maybe it is just the overly complicated use of >>>>>>>> locking/DCL in this class. >>>>>>>> >>>>>>>> -Chris. >>>>>>>> >>>>>>>> On 10/ 5/11 07:01 PM, David Holmes wrote: >>>>>>>>> This might not be related to the CME problem, but here: >>>>>>>>> >>>>>>>>> public static LocaleServiceProviderPool getPool(Class>>>>>>>> LocaleServiceProvider> providerClass) { >>>>>>>>> LocaleServiceProviderPool pool = poolOfPools.get(providerClass); >>>>>>>>> if (pool == null) { >>>>>>>>> LocaleServiceProviderPool newPool = >>>>>>>>> new LocaleServiceProviderPool(providerClass); >>>>>>>>> pool = poolOfPools.put(providerClass, newPool); >>>>>>>>> if (pool == null) { >>>>>>>>> pool = newPool; >>>>>>>>> } >>>>>>>>> } >>>>>>>>> >>>>>>>>> return pool; >>>>>>>>> } >>>>>>>>> >>>>>>>>> we should probably be using poolOfPools.putIfAbsent(providerClass, >>>>>>>>> newPool) >>>>>>>>> >>>>>>>>> David >>>>>>>>> >>>>>>>>> On 6/10/2011 3:35 AM, Naoto Sato wrote: >>>>>>>>>> I will look into this. Reopened the original CR. >>>>>>>>>> >>>>>>>>>> Naoto >>>>>>>>>> >>>>>>>>>> On 10/5/11 9:58 AM, Alan Bateman wrote: >>>>>>>>>>> Chris Hegarty wrote: >>>>>>>>>>>> Alan, Naoto, David >>>>>>>>>>>> >>>>>>>>>>>> I filed CR 7098100: java/util/Locale/Bug6989440.java fails >>>>>>>>>>>> intermittently. >>>>>>>>>>>> >>>>>>>>>>>> If you're ok with it please review the patch (below) and I can >>>>>>>>>>>> push it >>>>>>>>>>>> to the tl repo. Job done! >>>>>>>>>>> I assume there is also some underlying issue in the Locale code >>>>>>>>>>> and >>>>>>>>>>> this >>>>>>>>>>> might get hidden if we fix the test (I"ve no objection to fixing >>>>>>>>>>> the >>>>>>>>>>> test of course, just thinking that we should study the Locale >>>>>>>>>>> code to >>>>>>>>>>> try to identify the deadlock or hang or whatever it is that is >>>>>>>>>>> causing >>>>>>>>>>> the threads in this test not to terminate). >>>>>>>>>>> >>>>>>>>>>> -Alan >>>>>>>>>> >>>>>> >>>>> >>> From david.holmes at oracle.com Mon Oct 10 16:00:31 2011 From: david.holmes at oracle.com (David Holmes) Date: Tue, 11 Oct 2011 09:00:31 +1000 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E9312ED.8020303@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> <4E93069D.1040609@oracle.com> <4E9312ED.8020303@oracle.com> Message-ID: <4E93790F.5090105@oracle.com> So the jtreg uncaughtException code is doing a join() on the target Thread while holding the monitor lock of the ThreadGroup - ouch! Where do we file jtreg bugs? David On 11/10/2011 1:44 AM, Chris Hegarty wrote: > On 10/10/2011 15:52, Alan Bateman wrote: >> Chris Hegarty wrote: >>> Naoto, >>> >>> Forgot to add, you can probably just push the changes for the test >>> along with your source changes. I modified it a little since last >>> review. Reproduces one in about every ten times on one of our Dual >>> core Linux x64 boxes. >> Is it the CME that duplicates for you? I'm still wondering about the >> original failure mode which was a timeout, presumably a looping thread >> or deadlock or something else. > > This duplicates CME and deadlock. The deadlock would appear to happen > because jtreg tries to cleanup the thread that throws the CME, uncaught > exception. Look for 0xea769858 below. > > "Thread-7" prio=10 tid=0x0a026c00 nid=0x3c30 in Object.wait() [0xd00fe000] > java.lang.Thread.State: TIMED_WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0xea769858> (a java.lang.Thread) > at java.lang.Thread.join(Thread.java:1266) > - locked <0xea769858> (a java.lang.Thread) > at > com.sun.javatest.regtest.MainAction$SameVMThreadGroup.cleanup(MainAction.java:760) > > at > com.sun.javatest.regtest.MainAction$SameVMThreadGroup.uncaughtException(MainAction.java:727) > > - locked <0xea766988> (a > com.sun.javatest.regtest.MainAction$SameVMThreadGroup) > at java.lang.Thread.dispatchUncaughtException(Thread.java:1964) > > "Thread-6" prio=10 tid=0x0a022000 nid=0x3c2f waiting for monitor entry > [0xd0256000] > java.lang.Thread.State: BLOCKED (on object monitor) > at java.lang.ThreadGroup.threadTerminated(ThreadGroup.java:942) > - waiting to lock <0xea766988> (a > com.sun.javatest.regtest.MainAction$SameVMThreadGroup) > at java.lang.Thread.exit(Thread.java:732) > > "SameVMThread" prio=10 tid=0xd058a000 nid=0x3c2e waiting for monitor > entry [0xd02a6000] > java.lang.Thread.State: BLOCKED (on object monitor) > at java.lang.ThreadGroup.add(ThreadGroup.java:885) > - waiting to lock <0xea766988> (a > com.sun.javatest.regtest.MainAction$SameVMThreadGroup) > at java.lang.Thread.start(Thread.java:687) > - locked <0xea790160> (a Bug6989440$TestThread) > at Bug6989440.main(Bug6989440.java:47) > 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:601) > at > com.sun.javatest.regtest.MainAction$SameVMRunnable.run(MainAction.java:680) > at java.lang.Thread.run(Thread.java:722) > ..... > > > -Chris. > >> >> -Alan. From Ulf.Zibis at gmx.de Tue Oct 11 04:36:57 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Tue, 11 Oct 2011 13:36:57 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E862AB2.7090605@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> Message-ID: <4E942A59.5070006@gmx.de> Hi Sherman, I didn't read anything from you since longer time. You are in holidays? Am 30.09.2011 22:46, schrieb Xueming Shen: > > I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to 2009(?) because > the benchmark shows the "shift" version is slightly faster. Do you have any number > shows any difference now. My non-scientific benchmark still suggests the "shift" > type is faster on -server vm, no significant difference on -client vm. > In this sense, then you should do the same here: 87 private static boolean isNotContinuation(int b) { 88 return (b >> 6) != -2; 89 } ... + in all isMalformedxxx(). BTW, in all isMalformedxxx() you could replace all (bx & 0xc0) != 0x80 by isNotContinuation(bx) (would reduce the effort, checking the hex values manually, each time while reading) Additionally: Make private: 75 private static final void updatePositions( 76 Buffer src, int sp, Buffer dst, int dp) { -Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111011/4d8342b1/attachment.html From Ulf.Zibis at gmx.de Tue Oct 11 06:22:14 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Tue, 11 Oct 2011 15:22:14 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E942A59.5070006@gmx.de> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E942A59.5070006@gmx.de> Message-ID: <4E944306.5010605@gmx.de> Am 11.10.2011 13:36, schrieb Ulf Zibis: > >> I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to 2009(?) because >> the benchmark shows the "shift" version is slightly faster. Do you have any number >> shows any difference now. My non-scientific benchmark still suggests the "shift" >> type is faster on -server vm, no significant difference on -client vm. >> > > In this sense, then you should do the same here: > 87 private static boolean isNotContinuation(int b) { > 88 return (b >> 6) != -2; > 89 } > Another 3rd variant to compare for performance: (needs only 1 constant to load in cpu register, and is a 1-byte op code) 87 private static boolean isNotContinuation(byte b) { 88 return b >= (byte)0xc0; 89 } -Ulf From chris.hegarty at oracle.com Tue Oct 11 08:06:52 2011 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 11 Oct 2011 16:06:52 +0100 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E93790F.5090105@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> <4E93069D.1040609@oracle.com> <4E9312ED.8020303@oracle.com> <4E93790F.5090105@oracle.com> Message-ID: <4E945B8C.1030208@oracle.com> David, I'm not sure where we can file bugs on jtreg, probably have to wait for Jon to come back on line and drop him a mail. This is even worse that I originally though. Any thread that throws an unchecked exception followed by another thread starting a thread ( or invoking any operation on the group requiring its monitor ) will encounter this hang. When run in samevm or agentvm mode. Minimal treg test to reproduce this: /* * @test */ import java.util.concurrent.Phaser; public class HangJtreg { static Phaser phaser = new Phaser(2); public static void main(String[] args) throws Exception { (new Thread(new Runnable() { public void run() { try { throw new RuntimeException("thrown from ThrowingThread"); } finally { phaser.arrive(); } } })).start(); phaser.arriveAndAwaitAdvance(); (new Thread()).start(); } } -Chris. On 10/11/11 12:00 AM, David Holmes wrote: > So the jtreg uncaughtException code is doing a join() on the target > Thread while holding the monitor lock of the ThreadGroup - ouch! Where > do we file jtreg bugs? > > David > > On 11/10/2011 1:44 AM, Chris Hegarty wrote: >> On 10/10/2011 15:52, Alan Bateman wrote: >>> Chris Hegarty wrote: >>>> Naoto, >>>> >>>> Forgot to add, you can probably just push the changes for the test >>>> along with your source changes. I modified it a little since last >>>> review. Reproduces one in about every ten times on one of our Dual >>>> core Linux x64 boxes. >>> Is it the CME that duplicates for you? I'm still wondering about the >>> original failure mode which was a timeout, presumably a looping thread >>> or deadlock or something else. >> >> This duplicates CME and deadlock. The deadlock would appear to happen >> because jtreg tries to cleanup the thread that throws the CME, uncaught >> exception. Look for 0xea769858 below. >> >> "Thread-7" prio=10 tid=0x0a026c00 nid=0x3c30 in Object.wait() >> [0xd00fe000] >> java.lang.Thread.State: TIMED_WAITING (on object monitor) >> at java.lang.Object.wait(Native Method) >> - waiting on <0xea769858> (a java.lang.Thread) >> at java.lang.Thread.join(Thread.java:1266) >> - locked <0xea769858> (a java.lang.Thread) >> at >> com.sun.javatest.regtest.MainAction$SameVMThreadGroup.cleanup(MainAction.java:760) >> >> >> at >> com.sun.javatest.regtest.MainAction$SameVMThreadGroup.uncaughtException(MainAction.java:727) >> >> >> - locked <0xea766988> (a >> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >> at java.lang.Thread.dispatchUncaughtException(Thread.java:1964) >> >> "Thread-6" prio=10 tid=0x0a022000 nid=0x3c2f waiting for monitor entry >> [0xd0256000] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.ThreadGroup.threadTerminated(ThreadGroup.java:942) >> - waiting to lock <0xea766988> (a >> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >> at java.lang.Thread.exit(Thread.java:732) >> >> "SameVMThread" prio=10 tid=0xd058a000 nid=0x3c2e waiting for monitor >> entry [0xd02a6000] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.ThreadGroup.add(ThreadGroup.java:885) >> - waiting to lock <0xea766988> (a >> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >> at java.lang.Thread.start(Thread.java:687) >> - locked <0xea790160> (a Bug6989440$TestThread) >> at Bug6989440.main(Bug6989440.java:47) >> 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:601) >> at >> com.sun.javatest.regtest.MainAction$SameVMRunnable.run(MainAction.java:680) >> >> at java.lang.Thread.run(Thread.java:722) >> ..... >> >> >> -Chris. >> >>> >>> -Alan. From kumar.x.srinivasan at oracle.COM Tue Oct 11 09:38:33 2011 From: kumar.x.srinivasan at oracle.COM (Kumar Srinivasan) Date: Tue, 11 Oct 2011 09:38:33 -0700 Subject: testcase failure java/util/Locale/Bug6989440.java In-Reply-To: <4E945B8C.1030208@oracle.com> References: <844B6B71-89DD-46A5-9617-073FE3D82364@oracle.com> <4E89206B.1040603@oracle.com> <4E89F6AD.1060401@oracle.com> <4E8A2849.60709@oracle.com> <4E8A9790.10303@oracle.com> <4E8ABFB7.40108@oracle.com> <4E8B08FB.4040703@oracle.com> <4E8B2E91.4020604@oracle.com> <4E8C6484.2010909@oracle.com> <4E8C706B.4040200@oracle.com> <4E8C7AE7.10807@oracle.com> <4E8C8CCA.7010100@oracle.com> <4E8C955E.6060502@oracle.com> <4E8C9B8F.8000205@oracle.com> <4E8D8AE1.8080902@oracle.com> <4E8DE0CD.3080401@oracle.com> <4E8E24C5.9090402@oracle.com> <4E8F479F.6070301@oracle.com> <4E9248E4.3040509@oracle.com> <4E926815.7020808@oracle.com> <4E927813.1000900@oracle.com> <4E9300D1.9000704@oracle.com> <4E93069D.1040609@oracle.com> <4E9312ED.8020303@oracle.com> <4E93790F.5090105@oracle.com> <4E945B8C.1030208@oracle.com> Message-ID: <4E947109.5030207@oracle.COM> You can file it as follows: Product: jct_tools Category: jct_tools Subcategory: regtest and for a good measure add jon to the interest list. Kumar > David, > > I'm not sure where we can file bugs on jtreg, probably have to wait > for Jon to come back on line and drop him a mail. > > This is even worse that I originally though. Any thread that throws an > unchecked exception followed by another thread starting a thread ( or > invoking any operation on the group requiring its monitor ) will > encounter this hang. When run in samevm or agentvm mode. > > Minimal treg test to reproduce this: > > /* > * @test > */ > import java.util.concurrent.Phaser; > > public class HangJtreg { > static Phaser phaser = new Phaser(2); > > public static void main(String[] args) throws Exception { > (new Thread(new Runnable() { > public void run() { > try { > throw new RuntimeException("thrown from > ThrowingThread"); > } finally { > phaser.arrive(); > } > } > })).start(); > > phaser.arriveAndAwaitAdvance(); > (new Thread()).start(); > } > } > > -Chris. > > On 10/11/11 12:00 AM, David Holmes wrote: >> So the jtreg uncaughtException code is doing a join() on the target >> Thread while holding the monitor lock of the ThreadGroup - ouch! Where >> do we file jtreg bugs? >> >> David >> >> On 11/10/2011 1:44 AM, Chris Hegarty wrote: >>> On 10/10/2011 15:52, Alan Bateman wrote: >>>> Chris Hegarty wrote: >>>>> Naoto, >>>>> >>>>> Forgot to add, you can probably just push the changes for the test >>>>> along with your source changes. I modified it a little since last >>>>> review. Reproduces one in about every ten times on one of our Dual >>>>> core Linux x64 boxes. >>>> Is it the CME that duplicates for you? I'm still wondering about the >>>> original failure mode which was a timeout, presumably a looping thread >>>> or deadlock or something else. >>> >>> This duplicates CME and deadlock. The deadlock would appear to happen >>> because jtreg tries to cleanup the thread that throws the CME, uncaught >>> exception. Look for 0xea769858 below. >>> >>> "Thread-7" prio=10 tid=0x0a026c00 nid=0x3c30 in Object.wait() >>> [0xd00fe000] >>> java.lang.Thread.State: TIMED_WAITING (on object monitor) >>> at java.lang.Object.wait(Native Method) >>> - waiting on <0xea769858> (a java.lang.Thread) >>> at java.lang.Thread.join(Thread.java:1266) >>> - locked <0xea769858> (a java.lang.Thread) >>> at >>> com.sun.javatest.regtest.MainAction$SameVMThreadGroup.cleanup(MainAction.java:760) >>> >>> >>> >>> at >>> com.sun.javatest.regtest.MainAction$SameVMThreadGroup.uncaughtException(MainAction.java:727) >>> >>> >>> >>> - locked <0xea766988> (a >>> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >>> at java.lang.Thread.dispatchUncaughtException(Thread.java:1964) >>> >>> "Thread-6" prio=10 tid=0x0a022000 nid=0x3c2f waiting for monitor entry >>> [0xd0256000] >>> java.lang.Thread.State: BLOCKED (on object monitor) >>> at java.lang.ThreadGroup.threadTerminated(ThreadGroup.java:942) >>> - waiting to lock <0xea766988> (a >>> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >>> at java.lang.Thread.exit(Thread.java:732) >>> >>> "SameVMThread" prio=10 tid=0xd058a000 nid=0x3c2e waiting for monitor >>> entry [0xd02a6000] >>> java.lang.Thread.State: BLOCKED (on object monitor) >>> at java.lang.ThreadGroup.add(ThreadGroup.java:885) >>> - waiting to lock <0xea766988> (a >>> com.sun.javatest.regtest.MainAction$SameVMThreadGroup) >>> at java.lang.Thread.start(Thread.java:687) >>> - locked <0xea790160> (a Bug6989440$TestThread) >>> at Bug6989440.main(Bug6989440.java:47) >>> 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:601) >>> at >>> com.sun.javatest.regtest.MainAction$SameVMRunnable.run(MainAction.java:680) >>> >>> >>> at java.lang.Thread.run(Thread.java:722) >>> ..... >>> >>> >>> -Chris. >>> >>>> >>>> -Alan. From xueming.shen at oracle.com Tue Oct 11 10:49:01 2011 From: xueming.shen at oracle.com (Xueming Shen) Date: Tue, 11 Oct 2011 10:49:01 -0700 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E942A59.5070006@gmx.de> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E942A59.5070006@gmx.de> Message-ID: <4E94818D.2020800@oracle.com> On 10/11/2011 04:36 AM, Ulf Zibis wrote: > Am 30.09.2011 22:46, schrieb Xueming Shen: >> >> I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to >> 2009(?) because >> the benchmark shows the "shift" version is slightly faster. Do you >> have any number >> shows any difference now. My non-scientific benchmark still suggests >> the "shift" >> type is faster on -server vm, no significant difference on -client vm. >> > In this sense, then you should do the same here: > 87 private static boolean isNotContinuation(int b) { > 88 return (b >> 6) != -2; > 89 } I don't know which one is better, I did a run on private static boolean op1(int b) { return (b >> 6) != -2; } private static boolean op2(int b) { return (b & 0xc0) != 0x80; } private static boolean op3(byte b) { return b >= (byte)0xc0; } with 1000000 iteration on my linux machine, and got the scores op1=1149 op2=1147 op3=1146 I would interpret it as they are identical. > > > Additionally: > Make private: > 75 private static final void updatePositions( > 76 Buffer src, int sp, Buffer dst, int dp) { > updated accordingly -Sherman -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111011/6a974ebd/attachment-0001.html From Ulf.Zibis at gmx.de Thu Oct 13 09:55:14 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Thu, 13 Oct 2011 18:55:14 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E94818D.2020800@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E942A59.5070006@gmx.de> <4E94818D.2020800@oracle.com> Message-ID: <4E9717F2.2010605@gmx.de> Am 11.10.2011 19:49, schrieb Xueming Shen: > > I don't know which one is better, I did a run on > > private static boolean op1(int b) { > return (b >> 6) != -2; > } > private static boolean op2(int b) { > return (b & 0xc0) != 0x80; > } > private static boolean op3(byte b) { > return b >= (byte)0xc0; > } > > with 1000000 iteration on my linux machine, and got the scores > > op1=1149 > op2=1147 > op3=1146 > > I would interpret it as they are identical. Me too. thanks for your effort. Maybe the comparison would differ on different architectures. So I would prefer opt3, because the others ... 1. in question need 1 more CPU register to save the original value of b for later usage 2. need 1 more constant to load into CPU and opt 3 ... 3. is the best readable source code 4. in question seems best to help Hotspot finding best optimization on arbitrary architectures. Additionally I guess using always byte variables would in question help HotSpot to optimize with 1-byte-operand CPU instructions. Don't you like to replace all "(bx & 0xc0) != 0x80" by "isNotContinuation(bx)" ? -Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111013/b08f48ef/attachment.html From xueming.shen at oracle.com Thu Oct 13 12:13:42 2011 From: xueming.shen at oracle.com (Xueming Shen) Date: Thu, 13 Oct 2011 12:13:42 -0700 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E9717F2.2010605@gmx.de> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E942A59.5070006@gmx.de> <4E94818D.2020800@oracle.com> <4E9717F2.2010605@gmx.de> Message-ID: <4E973866.4000608@oracle.com> On 10/13/2011 09:55 AM, Ulf Zibis wrote: > Am 11.10.2011 19:49, schrieb Xueming Shen: >> >> I don't know which one is better, I did a run on >> >> private static boolean op1(int b) { >> return (b >> 6) != -2; >> } >> private static boolean op2(int b) { >> return (b & 0xc0) != 0x80; >> } >> private static boolean op3(byte b) { >> return b >= (byte)0xc0; >> } >> >> with 1000000 iteration on my linux machine, and got the scores >> >> op1=1149 >> op2=1147 >> op3=1146 >> >> I would interpret it as they are identical. > Me too. thanks for your effort. > Maybe the comparison would differ on different architectures. > > So I would prefer opt3, because the others ... > 1. in question need 1 more CPU register to save the original value of > b for later usage > 2. need 1 more constant to load into CPU > and opt 3 ... > 3. is the best readable source code > 4. in question seems best to help Hotspot finding best optimization on > arbitrary architectures. I doubt it's more "readable":-), given it's the "byte operation" means "<0x80 && >= 0xc0" in int. You need "b" to be byte for b >= (byte)0xc0 to be the equivalent of "<0x80 && >= 0xc0" and all use cases in UTF-8 existing implementation the "b" has been stored in "int" already. Arguably you can update the whole implementation to achieve this, but personally I would like to just stick to the problem this proposal is trying to solve. And, no, for the same reason I don't want to replace all "(b & 0xc0) != 0x80 by "isNotContinuation(b)", they just look fine for me, together with their neighbors, such as "<0x80 && >= 0xc0". -Sherman > > Additionally I guess using always byte variables would in question > help HotSpot to optimize with 1-byte-operand CPU instructions. > > Don't you like to replace all "(bx & 0xc0) != 0x80" by > "isNotContinuation(bx)" ? > > -Ulf > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111013/e1d64fd1/attachment.html From Ulf.Zibis at gmx.de Fri Oct 14 01:30:46 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Fri, 14 Oct 2011 10:30:46 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E973866.4000608@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E942A59.5070006@gmx.de> <4E94818D.2020800@oracle.com> <4E9717F2.2010605@gmx.de> <4E973866.4000608@oracle.com> Message-ID: <4E97F336.4090307@gmx.de> Am 13.10.2011 21:13, schrieb Xueming Shen: > On 10/13/2011 09:55 AM, Ulf Zibis wrote: >> Am 11.10.2011 19:49, schrieb Xueming Shen: >>> >>> I don't know which one is better, I did a run on >>> >>> private static boolean op1(int b) { >>> return (b >> 6) != -2; >>> } >>> private static boolean op2(int b) { >>> return (b & 0xc0) != 0x80; >>> } >>> private static boolean op3(byte b) { >>> return b >= (byte)0xc0; >>> } >>> >>> with 1000000 iteration on my linux machine, and got the scores >>> >>> op1=1149 >>> op2=1147 >>> op3=1146 >>> >>> I would interpret it as they are identical. >> Me too. thanks for your effort. >> Maybe the comparison would differ on different architectures. >> >> So I would prefer opt3, because the others ... >> 1. in question need 1 more CPU register to save the original value of b for later usage >> 2. need 1 more constant to load into CPU >> and opt 3 ... >> 3. is the best readable source code >> 4. in question seems best to help Hotspot finding best optimization on arbitrary architectures. 5. is the smallest in bytecode footprint 6. so interpreter would be faster too. > I doubt it's more "readable":-), given it's the "byte operation" means > "<0x80 && >= 0xc0" in int. If b would be an unsigned int in range [0..0xFF], half yes (it would be: b<0x80 || b>=0xc0). But b is in range [-0x80..0x7F] due to it's origin from a byte array, so the operation translated to int would be: "b < -0x80 || b >= -0x40" > You need "b" to be byte for b >= (byte)0xc0 No, it works as same for int, because the lower limit -0x80 will never be exceeded and (byte)0xc0 is -0x40. So the notation "b >= (byte)0xc0" looks most close to its real unsigned counterpart. > to be the equivalent of "<0x80 && >= 0xc0" and all use cases in UTF-8 > existing implementation the "b" has been stored in "int" already. Arguably > you can update the whole implementation to achieve this, yes, that's exactly what I wanted to say. > but personally > I would like to just stick to the problem this proposal is trying to solve. I agree, but it's not much more than declaring the bx as byte. > > And, no, for the same reason I don't want to replace all "(b & 0xc0) != 0x80 > by "isNotContinuation(b)", they just look fine for me, together with their > neighbors, such as "<0x80 && >= 0xc0". Yes, they look fine, but the reader always must put in mind, that "(b & 0xc0) != 0x80" is semantically same than "isNotContinuation(b)". Why you introduce isNotContinuation(b) at all? It could always be inlined, as I don't think, the tiny operation has any effect on HotSpot's optimization strategy, and as a side effect, I guess C1 code would be faster. -Ulf > > -Sherman > >> >> Additionally I guess using always byte variables would in question help HotSpot to optimize with >> 1-byte-operand CPU instructions. >> >> Don't you like to replace all "(bx & 0xc0) != 0x80" by "isNotContinuation(bx)" ? >> >> -Ulf >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111014/886a06c5/attachment.html From Ulf.Zibis at gmx.de Fri Oct 14 01:47:05 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Fri, 14 Oct 2011 10:47:05 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E862AB2.7090605@oracle.com> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> Message-ID: <4E97F709.7080600@gmx.de> Am 30.09.2011 22:46, schrieb Xueming Shen: > I believe we changed from (b1 < xyz) to (b1 >> x) == -2 back to 2009(?) because > the benchmark shows the "shift" version is slightly faster. Do you have any number > shows any difference now. My non-scientific benchmark still suggests the "shift" > type is faster on -server vm, no significant difference on -client vm. My new guess for the reason: The unfolding of the bytes to int to serve the isNotContinuation / isMalformedxx methods. So those methods should be coded in byte logic too. But there remains the big question, why c1 is faster than c2, except for 1b. -Ulf > > ------------------ your new switch--------------- > (1) -server > Method Millis Ratio > Decoding 1b UTF-8 : 125 1.000 > Decoding 2b UTF-8 : 2558 20.443 > Decoding 3b UTF-8 : 3439 27.481 > Decoding 4b UTF-8 : 2030 16.221 > (2) -client > Decoding 1b UTF-8 : 335 1.000 > Decoding 2b UTF-8 : 1041 3.105 > Decoding 3b UTF-8 : 2245 6.694 > Decoding 4b UTF-8 : 1254 3.741 > > ------------------ existing "shift"--------------- > (1) -server > Decoding 1b UTF-8 : 134 1.000 > Decoding 2b UTF-8 : 1891 14.106 > Decoding 3b UTF-8 : 2934 21.886 > Decoding 4b UTF-8 : 2133 15.913 > (2) -client > Decoding 1b UTF-8 : 341 1.000 > Decoding 2b UTF-8 : 949 2.560 > Decoding 3b UTF-8 : 2321 6.255 > Decoding 4b UTF-8 : 1278 3.446 > > > > -sherman > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20111014/caa28ee7/attachment.html From Ulf.Zibis at gmx.de Fri Oct 14 02:23:33 2011 From: Ulf.Zibis at gmx.de (Ulf Zibis) Date: Fri, 14 Oct 2011 11:23:33 +0200 Subject: Codereview request for 7096080: UTF8 update and new CESU-8 charset In-Reply-To: <4E97F709.7080600@gmx.de> References: <4E83730A.8060106@oracle.com> <4E83A350.5010102@gmx.de> <4E83E591.2090103@oracle.com> <4E85CD9D.1050401@gmx.de> <4E862AB2.7090605@oracle.com> <4E97F709.7080600@gmx.de> Message-ID: <4E97FF95.5090502@gmx.de> Am 14.10.2011 10:47, schrieb Ulf Zibis: > My new guess for the reason: > The unfolding of the bytes to int to serve the isNotContinuation / isMalformedxx methods. > So those methods should be coded in byte logic too. + use the "bx <= (byte)abc" logic instead "shift" or "(bx & abc) != def". -Ulf From michael.fang at sun.com Mon Oct 17 16:24:30 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:24:30 +0000 Subject: hg: jdk8/l10n: 9 new changesets Message-ID: <20111017232430.47EE44702D@hg.openjdk.java.net> Changeset: 28cf2aec4dd7 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/28cf2aec4dd7 Added tag jdk8-b05 for changeset b910aac18c77 ! .hgtags Changeset: 0db7ae9f2b10 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/0db7ae9f2b10 Added tag jdk8-b06 for changeset 28cf2aec4dd7 ! .hgtags Changeset: cf76aa4189e4 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/cf76aa4189e4 Added tag jdk8-b07 for changeset 0db7ae9f2b10 ! .hgtags Changeset: b1d357ebf0cb Author: weijun Date: 2011-09-08 09:06 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/b1d357ebf0cb 7087428: move client tests out of jdk_misc Reviewed-by: ohair, alanb ! make/jprt.properties Changeset: 123873564c23 Author: lana Date: 2011-09-13 08:37 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/123873564c23 Merge Changeset: 39edfd9d8ff0 Author: lana Date: 2011-09-23 23:25 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/39edfd9d8ff0 Merge Changeset: 2f1af0e3e8f7 Author: lana Date: 2011-09-26 14:31 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/2f1af0e3e8f7 Merge Changeset: fb1bc13260d7 Author: lana Date: 2011-10-03 18:22 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/fb1bc13260d7 Merge Changeset: 8adb70647b5a Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/rev/8adb70647b5a Added tag jdk8-b08 for changeset fb1bc13260d7 ! .hgtags From michael.fang at sun.com Mon Oct 17 16:27:31 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:27:31 +0000 Subject: hg: jdk8/l10n/corba: 4 new changesets Message-ID: <20111017232735.D2A234702E@hg.openjdk.java.net> Changeset: 45c43dde7ba7 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/corba/rev/45c43dde7ba7 Added tag jdk8-b05 for changeset cc1b599b986a ! .hgtags Changeset: 3d61f0856f34 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/corba/rev/3d61f0856f34 Added tag jdk8-b06 for changeset 45c43dde7ba7 ! .hgtags Changeset: 0d52b1c87aa8 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/corba/rev/0d52b1c87aa8 Added tag jdk8-b07 for changeset 3d61f0856f34 ! .hgtags Changeset: a891732c1a83 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/corba/rev/a891732c1a83 Added tag jdk8-b08 for changeset 0d52b1c87aa8 ! .hgtags From michael.fang at sun.com Mon Oct 17 16:30:18 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:30:18 +0000 Subject: hg: jdk8/l10n/hotspot: 89 new changesets Message-ID: <20111017233307.6B9BA4702F@hg.openjdk.java.net> Changeset: 0db80d8e77fc Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/0db80d8e77fc Added tag jdk8-b05 for changeset dce7d24674f4 ! .hgtags Changeset: 3f0cf875af83 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/3f0cf875af83 Added tag jdk8-b06 for changeset 0db80d8e77fc ! .hgtags Changeset: 0663e7617095 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/0663e7617095 Added tag jdk8-b07 for changeset 3f0cf875af83 ! .hgtags Changeset: 5755e84e970f Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5755e84e970f Added tag hs22-b01 for changeset 0cc8a70952c3 ! .hgtags Changeset: 40c5e268d399 Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/40c5e268d399 Added tag hs22-b02 for changeset 7c29742c41b4 ! .hgtags Changeset: 52220701f19f Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/52220701f19f Added tag hs22-b03 for changeset 3a2fb61165df ! .hgtags Changeset: ce9bde819dcb Author: jcoomes Date: 2011-09-02 03:49 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/ce9bde819dcb 7086589: bump the hs22 build number to 04 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 5c123cbeebbe Author: jcoomes Date: 2011-09-02 15:52 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5c123cbeebbe Added tag hs22-b04 for changeset ce9bde819dcb ! .hgtags Changeset: 3cd0157e1d4d Author: iveresov Date: 2011-08-25 02:57 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/3cd0157e1d4d 7082969: NUMA interleaving Summary: Support interleaving on NUMA systems for collectors that don't have NUMA-awareness. Reviewed-by: iveresov, ysr Contributed-by: Tom Deneau ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os/windows/vm/os_windows.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: eeae91c9baba Author: johnc Date: 2011-08-29 10:13 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/eeae91c9baba 7080389: G1: refactor marking code in evacuation pause copy closures Summary: Refactor code marking code in the evacuation pause copy closures so that an evacuated object is only marked by the thread that successfully copies it. Reviewed-by: stefank, brutisso, tonyp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Changeset: 9447b2fb6fcf Author: iveresov Date: 2011-08-29 17:42 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/9447b2fb6fcf 7082645: Hotspot doesn't compile on old linuxes after 7060836 Summary: Move syscall ids definitions into os_linux.cpp Reviewed-by: johnc ! src/os/linux/vm/os_linux.cpp Changeset: 4fe626cbf0bf Author: johnc Date: 2011-08-31 10:16 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/4fe626cbf0bf 7066841: remove MacroAssembler::br_on_reg_cond() on sparc Summary: Remove the macro assembler routine br_on_reg_cond() and replace the remaining calls to that routine with an equivalent. Reviewed-by: kvn, iveresov ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: ae1b1788f63f Author: ysr Date: 2011-08-31 23:55 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/ae1b1788f63f Merge Changeset: 4668545121b8 Author: jcoomes Date: 2011-09-02 21:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/4668545121b8 Merge Changeset: ac8738449b6f Author: never Date: 2011-08-25 20:29 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/ac8738449b6f 7082949: JSR 292: missing ResourceMark in methodOopDesc::make_invoke_method Reviewed-by: kvn, twisti ! src/share/vm/oops/methodOop.cpp + test/compiler/7082949/Test7082949.java Changeset: baf763f388e6 Author: kvn Date: 2011-08-26 08:52 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/baf763f388e6 7059037: Use BIS for zeroing on T4 Summary: Use BIS for zeroing new allocated big (2Kb and more) objects and arrays. Reviewed-by: never, twisti, ysr ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/copy_sparc.hpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/oops/cpCacheKlass.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/stubRoutines.cpp ! src/share/vm/runtime/stubRoutines.hpp Changeset: 8805f8c1e23e Author: iveresov Date: 2011-08-27 00:23 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/8805f8c1e23e 6591247: C2 cleans up the merge point too early during SplitIf Summary: Remove region self reference last Reviewed-by: kvn, never ! src/share/vm/opto/split_if.cpp Changeset: b27c72d69fd1 Author: twisti Date: 2011-08-29 05:07 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/b27c72d69fd1 7083184: JSR 292: don't store context class argument with call site dependencies Reviewed-by: jrose, never ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/code/dependencies.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/opto/callGenerator.cpp Changeset: 19241ae0d839 Author: never Date: 2011-08-30 00:54 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/19241ae0d839 7082263: Reflection::resolve_field/field_get/field_set are broken Reviewed-by: kvn, dholmes, stefank, coleenp ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/solaris/makefiles/debug.make ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/jvmg.make - make/solaris/makefiles/mapfile-vers-nonproduct ! make/solaris/makefiles/optimized.make ! make/solaris/makefiles/product.make ! src/share/vm/precompiled.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/reflection.hpp - src/share/vm/runtime/reflectionCompat.hpp Changeset: b346f13112d8 Author: iveresov Date: 2011-08-30 19:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/b346f13112d8 7085279: C1 overflows code buffer with VerifyOops and CompressedOops Summary: Increase the limit of code emitted per LIR instruction, increase the max size of the nmethod generated by C1 Reviewed-by: never, kvn, johnc ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_globals.hpp Changeset: de847cac9235 Author: twisti Date: 2011-08-31 01:40 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/de847cac9235 7078382: JSR 292: don't count method handle adapters against inlining budgets Reviewed-by: kvn, never ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/opto/bytecodeInfo.cpp Changeset: a64d352d1118 Author: kvn Date: 2011-08-31 09:48 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/a64d352d1118 7085137: -XX:+VerifyOops is broken Summary: Replace set() with patchable_set() to generate 8 instructions always. Reviewed-by: iveresov, never, roland ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/sparc.ad Changeset: c124e2e7463e Author: never Date: 2011-08-31 16:46 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/c124e2e7463e 7083786: dead various dead chunks of code Reviewed-by: iveresov, kvn ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/frame_sparc.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.hpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp ! src/share/vm/ci/ciConstant.hpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciField.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/oops/constMethodKlass.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/prims/forte.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: a32de5085326 Author: twisti Date: 2011-09-01 01:31 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/a32de5085326 7079673: JSR 292: C1 should inline bytecoded method handle adapters Reviewed-by: never ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/parse.hpp Changeset: aa67216400d3 Author: twisti Date: 2011-09-02 00:36 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/aa67216400d3 7085404: JSR 292: VolatileCallSites should have push notification too Reviewed-by: never, kvn ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciField.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/parse3.cpp ! src/share/vm/prims/unsafe.cpp Changeset: 11a4af030e4b Author: twisti Date: 2011-09-02 04:28 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/11a4af030e4b 7071709: JSR 292: switchpoint invalidation should be pushed not pulled Reviewed-by: never ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/parse3.cpp Changeset: 2f9b79ddb05c Author: kvn Date: 2011-09-02 12:13 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/2f9b79ddb05c 7039731: arraycopy could use prefetch on SPARC Summary: Use BIS and prefetch in arraycopy stubs for Sparc (BIS for T4 only). Reviewed-by: never, iveresov ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/share/vm/runtime/globals.hpp Changeset: 2090c623107e Author: never Date: 2011-09-02 22:00 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/2090c623107e 7016881: JSR 292: JDI: sun.jvm.hotspot.utilities.AssertionFailure: index out of bounds Reviewed-by: kvn, twisti ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java Changeset: c26de9aef2ed Author: never Date: 2011-09-02 20:58 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/c26de9aef2ed 7071307: MethodHandle bimorphic inlining should consider the frequency Reviewed-by: twisti, roland, kvn, iveresov ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/share/vm/ci/ciCallProfile.hpp ! src/share/vm/ci/ciMethodHandle.cpp ! src/share/vm/ci/ciMethodHandle.hpp ! src/share/vm/ci/ciObject.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/methodDataOop.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/idealGraphPrinter.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/prims/methodHandleWalk.hpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp Changeset: 7ffacbb338d4 Author: never Date: 2011-09-03 09:56 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/7ffacbb338d4 Merge Changeset: 7b5c767f229c Author: kvn Date: 2011-09-03 14:03 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/7b5c767f229c 7086560: 7085404 changes broke VM with -XX:-EnableInvokeDynamic Summary: Add check that ciEnv::_CallSite_klass is initialized. Reviewed-by: jrose ! src/share/vm/ci/ciField.hpp Changeset: 7588156f5cf9 Author: never Date: 2011-09-05 17:09 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/7588156f5cf9 7051798: SA-JDI: NPE in Frame.addressOfStackSlot(Frame.java:244) Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/HSDB.java ! agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java + agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java ! agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java + agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java + agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java ! src/cpu/x86/vm/methodHandles_x86.hpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_LinearScan.hpp ! src/share/vm/code/pcDesc.cpp ! src/share/vm/code/pcDesc.hpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: c2d3caa64b3e Author: roland Date: 2011-09-07 09:35 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/c2d3caa64b3e 7086394: c2/arm: enable UseFPUForSpilling Summary: ARM has instructions to move data directly between the fpu and integer registers. Reviewed-by: kvn, never ! src/share/vm/opto/matcher.cpp Changeset: d968f546734e Author: iveresov Date: 2011-09-07 11:52 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/d968f546734e Merge - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/runtime/globals.hpp - src/share/vm/runtime/reflectionCompat.hpp Changeset: 2fecca53a2c6 Author: roland Date: 2011-09-07 14:15 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/2fecca53a2c6 7085012: ARM: com/sun/jdi/PopSynchronousTest.java still fails Summary: InterpreterRuntime::popframe_move_outgoing_args() is required for the ARM interpreter. Reviewed-by: kvn, twisti ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp Changeset: 5596e125fe4f Author: rottenha Date: 2011-09-08 06:36 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5596e125fe4f Merge ! src/share/vm/interpreter/interpreterRuntime.cpp Changeset: 27702f012017 Author: iveresov Date: 2011-09-06 21:03 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/27702f012017 7087583: Hotspot fails to allocate heap with mmap(MAP_HUGETLB) Summary: Try using small pages when transparent huge pages allocation fails Reviewed-by: ysr ! src/os/linux/vm/os_linux.cpp Changeset: 20213c8a3c40 Author: tonyp Date: 2011-09-07 12:21 -0400 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/20213c8a3c40 7050392: G1: Introduce flag to generate a log of the G1 ergonomic decisions Summary: It introduces ergonomic decision logging in G1 for the following heuristics: heap sizing, collection set construction, concurrent cycle initiation, and partially-young GC start/end. The code has a bit of refactoring in a few places to make the decision logging possible. It also replaces alternative ad-hoc logging that we have under different parameters and switches (G1_DEBUG, G1PolicyVerbose). Reviewed-by: johnc, ysr ! src/share/vm/gc_implementation/g1/collectionSetChooser.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/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp + src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Changeset: c2bf0120ee5d Author: stefank Date: 2011-09-01 16:18 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/c2bf0120ee5d 7085906: Replace the permgen allocated sentinelRef with a self-looped end Summary: Remove the sentinelRef and let the last Reference in a discovered chain point back to itself. Reviewed-by: ysr, jmasa ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/memory/sharedHeap.cpp Changeset: 05550041d664 Author: ysr Date: 2011-09-07 15:00 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/05550041d664 Merge ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: eca1193ca245 Author: ysr Date: 2011-09-07 13:55 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/eca1193ca245 4965777: GC changes to support use of discovered field for pending references Summary: If and when the reference handler thread is able to use the discovered field to link reference objects in its pending list, so will GC. In that case, GC will scan through this field once a reference object has been placed on the pending list, but not scan that field before that stage, as the field is used by the concurrent GC thread to link discovered objects. When ReferenceHandleR thread does not use the discovered field for the purpose of linking the elements in the pending list, as would be the case in older JDKs, the JVM will fall back to the old behaviour of using the next field for that purpose. Reviewed-by: jcoomes, mchung, stefank ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp Changeset: a6128a8ed624 Author: iveresov Date: 2011-09-07 18:58 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/a6128a8ed624 7086226: UseNUMA fails on old versions of windows Summary: Return correct answers from os::numa_*() for UMA machines or if NUMA API is not supported Reviewed-by: johnc ! src/os/windows/vm/os_windows.cpp Changeset: 4f41766176cf Author: tonyp Date: 2011-09-08 05:16 -0400 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/4f41766176cf 7084509: G1: fix inconsistencies and mistakes in the young list target length calculations Summary: Fixed inconsistencies and mistakes in the young list target length calculations so that a) the calculated target length is optimal (before, it was not), b) other parameters like max survivor size and max gc locker eden expansion are always consistent with the calculated target length (before, they were not always), and c) the resulting target length was always bound by desired min and max values (before, it was not). Reviewed-by: brutisso, johnc ! src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! 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 Changeset: af2ab04e0038 Author: brutisso Date: 2011-09-08 16:29 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/af2ab04e0038 6929868: G1: introduce min / max young gen size bounds Summary: Make G1 handle young gen size command line flags more consistently Reviewed-by: tonyp, jwilhelm ! 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: 3bddbf0f57d6 Author: tonyp Date: 2011-09-09 05:20 -0400 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/3bddbf0f57d6 7087717: G1: make the G1PrintRegionLivenessInfo parameter diagnostic Reviewed-by: brutisso, ysr ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: e984655be425 Author: stefank Date: 2011-09-09 14:44 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/e984655be425 Merge ! src/share/vm/prims/jvm.h Changeset: 79f9a3ed607a Author: jcoomes Date: 2011-09-09 16:17 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/79f9a3ed607a Merge ! .hgtags - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 513a84dd0f8b Author: jcoomes Date: 2011-09-09 16:24 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/513a84dd0f8b 7088991: Bump ths hs22 build number to 05 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 140317da459a Author: jcoomes Date: 2011-09-09 16:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/140317da459a Added tag hs22-b05 for changeset 513a84dd0f8b ! .hgtags Changeset: f1b4e0e0bdad Author: tonyp Date: 2011-09-13 12:40 -0400 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/f1b4e0e0bdad 7089625: G1: policy for how many old regions to add to the CSet (when young gen is fixed) is broken Summary: When refactoring the code for a previous fix, a condition was not correctly negated which prevents the G1 policy from adding the correct number of old regions to the CSet when the young gen size is fixed. The changeset also fixes a small syntactical issue in g1ErgoVerbose.hpp which is causing compiler warnings. Reviewed-by: brutisso, ysr ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp Changeset: 0a63380c8ac8 Author: iveresov Date: 2011-09-13 16:58 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/0a63380c8ac8 7090069: Java launcher hangs in infinite loop on windows when UseNUMA[Interleaving] is specified Summary: Fix _numa_used_node_list array size specification Reviewed-by: kvn, johnc, jmasa, ysr ! src/os/windows/vm/os_windows.cpp Changeset: f94227b6117b Author: kvn Date: 2011-09-13 20:28 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/f94227b6117b 7090259: Fix hotspot sources to build with old compilers Summary: Fixed warnings which prevent building VM with old compilers. Reviewed-by: never ! make/solaris/makefiles/sparcWorks.make ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/opto/block.cpp Changeset: da6a29fb0da5 Author: kvn Date: 2011-09-07 12:58 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/da6a29fb0da5 7054211: No loop unrolling done in jdk7b144 for a test update() while loop Summary: restore unrolling code for CaffeineMark. Reviewed-by: never ! src/share/vm/opto/loopTransform.cpp Changeset: 5432047c7db7 Author: bdelsart Date: 2011-09-08 10:12 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5432047c7db7 7087445: Improve platform independence of JSR292 shared code Summary: changes necessary for some JSR292 ports Reviewed-by: jrose, dholmes ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/x86/vm/frame_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/zero/vm/frame_zero.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/frame.hpp Changeset: b0efc7ee3b31 Author: twisti Date: 2011-09-08 05:11 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/b0efc7ee3b31 7085860: JSR 292: implement CallSite.setTargetNormal and setTargetVolatile as native methods Reviewed-by: jrose, never ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/oops/klassOop.hpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/prims/methodHandles.cpp Changeset: fdcb1e828d53 Author: kvn Date: 2011-09-08 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/fdcb1e828d53 7087947: Add regression test for 7068051 Summary: Add regression test. Reviewed-by: never + test/compiler/7068051/Test7068051.java + test/compiler/7068051/Test7068051.sh Changeset: 8f47d8870d9a Author: roland Date: 2011-09-08 09:35 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/8f47d8870d9a 7087453: PhaseChaitin::yank_if_dead() should handle MachTemp inputs Summary: PhaseChaitin::yank_if_dead() should be able to handle MachTemp inputs as a special case and yank them. Reviewed-by: never, kvn ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/postaloc.cpp Changeset: 5257f8e66b40 Author: iveresov Date: 2011-09-09 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5257f8e66b40 Merge ! src/share/vm/runtime/arguments.cpp Changeset: 2c24ef16533d Author: kvn Date: 2011-09-09 13:47 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/2c24ef16533d 7035946: Up to 15% regression on JDK 7 b136 vs b135 on specjvm2008.crypto.rsa on x64 Summary: Revert changes which caused regression. Reviewed-by: never ! src/share/vm/opto/loopnode.cpp Changeset: c565834fb592 Author: never Date: 2011-09-10 00:11 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/c565834fb592 7088020: SEGV in JNIHandleBlock::release_block Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/share/vm/runtime/stubRoutines.cpp ! src/share/vm/runtime/stubRoutines.hpp + test/compiler/7088020/Test7088020.java Changeset: e6b1331a51d2 Author: never Date: 2011-09-10 17:29 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/e6b1331a51d2 7086585: make Java field injection more flexible Reviewed-by: jrose, twisti, kvn, coleenp ! agent/src/share/classes/sun/jvm/hotspot/oops/Field.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/test/jdi/sasanity.sh ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/cpCacheOop.cpp + src/share/vm/oops/fieldInfo.hpp + src/share/vm/oops/fieldStreams.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/reflectionUtils.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/accessFlags.hpp Changeset: f6f3bb0ee072 Author: never Date: 2011-09-11 14:48 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/f6f3bb0ee072 7088955: add C2 IR support to the SA Reviewed-by: kvn ! agent/make/Makefile ! agent/make/saenv.sh ! agent/make/saenv64.sh ! agent/src/os/solaris/Makefile - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp ! agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/DebugServer.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java + agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java + agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java + agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java + agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java + agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java + agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Field.java ! agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java + agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java + agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java + agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java + agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java + agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java + agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java + agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java + agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java + agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java + agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java + agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java + agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java + agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java ! agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java + agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java + agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java ! make/sa.files ! src/share/vm/ci/ciArrayKlass.hpp ! src/share/vm/ci/ciClassList.hpp ! src/share/vm/ci/ciConstant.hpp ! src/share/vm/ci/ciObjectFactory.hpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/memory/allocation.hpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/opto/block.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callnode.hpp ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/optoreg.hpp ! src/share/vm/opto/parse.hpp ! src/share/vm/opto/regalloc.hpp ! src/share/vm/opto/type.hpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/vframeArray.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/growableArray.hpp Changeset: ab577c97a5f3 Author: never Date: 2011-09-12 13:51 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/ab577c97a5f3 7089709: type "jushort" not found Reviewed-by: kvn, twisti ! src/share/vm/runtime/vmStructs.cpp Changeset: 2209834ccb59 Author: kvn Date: 2011-09-13 11:46 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/2209834ccb59 7089632: assert(machtmp->outcnt() == 1) failed: expected for a MachTemp Summary: Replace assert with check to delete MachTemp nodes only when they are really dead. Reviewed-by: never ! src/share/vm/opto/postaloc.cpp Changeset: 10ee2b297ccd Author: bdelsart Date: 2011-09-14 10:40 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/10ee2b297ccd 7057978: improve robustness of c1 ARM back-end wrt non encodable constants Summary: ARM only, avoid assertion failures for huge constants generated by C1 shared code Reviewed-by: never, vladidan ! src/share/vm/c1/c1_LIR.cpp Changeset: 393f4b789fd0 Author: bdelsart Date: 2011-09-14 16:28 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/393f4b789fd0 7077806: ARM: java.lang.InternalError: bound subword value does not fit into the subword type Summary: shared fix necessary for ARM/PPC Reviewed-by: twisti, roland ! src/share/vm/prims/methodHandles.hpp Changeset: 35c656d0b685 Author: never Date: 2011-09-14 13:57 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/35c656d0b685 7090654: nightly failures after 7086585 Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp Changeset: 8ed53447f690 Author: iveresov Date: 2011-09-15 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/8ed53447f690 Merge - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java ! src/share/vm/classfile/javaClasses.cpp Changeset: 558f525a6ebe Author: jcoomes Date: 2011-09-15 19:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/558f525a6ebe Merge ! .hgtags - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 8ab2f4108d20 Author: jcoomes Date: 2011-09-15 20:30 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/8ab2f4108d20 7091294: disable quicksort tests Reviewed-by: jmasa, ysr, kvn ! src/share/vm/utilities/quickSort.cpp Changeset: 650d15d8f372 Author: jcoomes Date: 2011-09-15 20:56 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/650d15d8f372 7091255: Bump the hs22 build number to 06 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 5a3c2bc614ca Author: jcoomes Date: 2011-09-15 20:56 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5a3c2bc614ca Added tag hs22-b06 for changeset 650d15d8f372 ! .hgtags Changeset: 77e1a9153757 Author: jcoomes Date: 2011-09-16 21:35 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/77e1a9153757 7091545: hs23 - set hotspot version & build number Reviewed-by: tonyp, never, phh, jmasa ! make/hotspot_version Changeset: da0999c4b733 Author: dcubed Date: 2011-09-16 16:21 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/da0999c4b733 7071904: 4/4 HotSpot: Full Debug Symbols Summary: Add support for .debuginfo files for HSX libraries. Reviewed-by: poonam, dholmes, never ! make/Makefile ! make/linux/Makefile ! make/linux/makefiles/build_vm_def.sh ! make/linux/makefiles/buildtree.make ! make/linux/makefiles/defs.make ! make/linux/makefiles/gcc.make ! make/linux/makefiles/jsig.make ! make/linux/makefiles/product.make ! make/linux/makefiles/saproc.make ! make/linux/makefiles/vm.make ! make/solaris/Makefile + make/solaris/makefiles/build_vm_def.sh ! make/solaris/makefiles/buildtree.make ! make/solaris/makefiles/defs.make ! make/solaris/makefiles/dtrace.make ! make/solaris/makefiles/jsig.make ! make/solaris/makefiles/mapfile-vers ! make/solaris/makefiles/product.make ! make/solaris/makefiles/saproc.make ! make/solaris/makefiles/sparcWorks.make ! make/solaris/makefiles/vm.make Changeset: 86cbe939f0c7 Author: dcubed Date: 2011-09-19 12:18 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/86cbe939f0c7 Merge Changeset: 3607aac85aa9 Author: kevinw Date: 2011-09-22 16:48 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/3607aac85aa9 7051189: Need to suppress info message if -xcheck:jni used with libjsig.so Reviewed-by: coleenp, minqi ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp + test/runtime/7051189/Xchecksig.sh Changeset: 5cceda753a4a Author: iveresov Date: 2011-09-19 15:21 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5cceda753a4a 7091764: Tiered: enable aastore profiling Summary: Turn on aastore profiling Reviewed-by: jrose, twisti ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp Changeset: 075ea0ed9e7c Author: kvn Date: 2011-09-20 08:39 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/075ea0ed9e7c 7081842: assert(Compile::current()->unique() < (uint)MaxNodeLimit) failed: Node limit exceeded Summary: Add missing node limit check in IGVN optimizer Reviewed-by: iveresov, never ! make/linux/build.sh ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java ! src/share/vm/opto/phaseX.cpp Changeset: eda6988c0d81 Author: never Date: 2011-09-20 23:50 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/eda6988c0d81 7092236: java/util/EnumSet/EnumSetBash.java fails Reviewed-by: kvn, twisti, jrose ! src/share/vm/ci/ciEnv.cpp Changeset: f08d439fab8c Author: never Date: 2011-09-25 16:03 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/f08d439fab8c 7089790: integrate bsd-port changes Reviewed-by: kvn, twisti, jrose Contributed-by: Kurt Miller , Greg Lewis , Jung-uk Kim , Christos Zoulas , Landon Fuller , The FreeBSD Foundation , Michael Franz , Roger Hoover , Alexander Strange ! agent/make/Makefile + agent/src/os/bsd/BsdDebuggerLocal.c + agent/src/os/bsd/Makefile + agent/src/os/bsd/StubDebuggerLocal.c + agent/src/os/bsd/elfmacros.h + agent/src/os/bsd/libproc.h + agent/src/os/bsd/libproc_impl.c + agent/src/os/bsd/libproc_impl.h + agent/src/os/bsd/mapfile + agent/src/os/bsd/ps_core.c + agent/src/os/bsd/ps_proc.c + agent/src/os/bsd/salibelf.c + agent/src/os/bsd/salibelf.h + agent/src/os/bsd/symtab.c + agent/src/os/bsd/symtab.h + agent/src/os/bsd/test.c + agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java ! make/Makefile + make/bsd/Makefile + make/bsd/README + make/bsd/adlc_updater + make/bsd/build.sh + make/bsd/makefiles/adjust-mflags.sh + make/bsd/makefiles/adlc.make + make/bsd/makefiles/amd64.make + make/bsd/makefiles/arm.make + make/bsd/makefiles/build_vm_def.sh + make/bsd/makefiles/buildtree.make + make/bsd/makefiles/compiler1.make + make/bsd/makefiles/compiler2.make + make/bsd/makefiles/core.make + make/bsd/makefiles/cscope.make + make/bsd/makefiles/debug.make + make/bsd/makefiles/defs.make + make/bsd/makefiles/dtrace.make + make/bsd/makefiles/fastdebug.make + make/bsd/makefiles/gcc.make + make/bsd/makefiles/hp.make + make/bsd/makefiles/hp1.make + make/bsd/makefiles/i486.make + make/bsd/makefiles/ia64.make + make/bsd/makefiles/jsig.make + make/bsd/makefiles/jvmg.make + make/bsd/makefiles/jvmti.make + make/bsd/makefiles/launcher.make + make/bsd/makefiles/mapfile-vers-debug + make/bsd/makefiles/mapfile-vers-jsig + make/bsd/makefiles/mapfile-vers-product + make/bsd/makefiles/optimized.make + make/bsd/makefiles/ppc.make + make/bsd/makefiles/product.make + make/bsd/makefiles/profiled.make + make/bsd/makefiles/rules.make + make/bsd/makefiles/sa.make + make/bsd/makefiles/saproc.make + make/bsd/makefiles/shark.make + make/bsd/makefiles/sparc.make + make/bsd/makefiles/sparcWorks.make + make/bsd/makefiles/sparcv9.make + make/bsd/makefiles/tiered.make + make/bsd/makefiles/top.make + make/bsd/makefiles/vm.make + make/bsd/makefiles/zero.make + make/bsd/makefiles/zeroshark.make + make/bsd/platform_amd64 + make/bsd/platform_amd64.suncc + make/bsd/platform_i486 + make/bsd/platform_i486.suncc + make/bsd/platform_ia64 + make/bsd/platform_sparc + make/bsd/platform_sparcv9 + make/bsd/platform_zero.in ! make/cscope.make ! make/defs.make ! make/linux/makefiles/arm.make ! make/linux/makefiles/defs.make ! make/linux/makefiles/ppc.make ! make/sa.files ! make/solaris/makefiles/defs.make ! make/windows/makefiles/defs.make ! src/cpu/x86/vm/bytes_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/copy_x86.hpp ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/jni_x86.h ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/stubRoutines_x86_32.cpp ! src/cpu/x86/vm/stubRoutines_x86_64.cpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/zero/vm/bytes_zero.hpp ! src/cpu/zero/vm/globals_zero.hpp ! src/cpu/zero/vm/interp_masm_zero.cpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/cpu/zero/vm/stubRoutines_zero.cpp ! src/cpu/zero/vm/vm_version_zero.cpp + src/os/bsd/vm/attachListener_bsd.cpp + src/os/bsd/vm/c1_globals_bsd.hpp + src/os/bsd/vm/c2_globals_bsd.hpp + src/os/bsd/vm/chaitin_bsd.cpp + src/os/bsd/vm/decoder_bsd.cpp + src/os/bsd/vm/dtraceJSDT_bsd.cpp + src/os/bsd/vm/globals_bsd.hpp + src/os/bsd/vm/interfaceSupport_bsd.hpp + src/os/bsd/vm/jsig.c + src/os/bsd/vm/jvm_bsd.cpp + src/os/bsd/vm/jvm_bsd.h + src/os/bsd/vm/mutex_bsd.cpp + src/os/bsd/vm/mutex_bsd.inline.hpp + src/os/bsd/vm/osThread_bsd.cpp + src/os/bsd/vm/osThread_bsd.hpp + src/os/bsd/vm/os_bsd.cpp + src/os/bsd/vm/os_bsd.hpp + src/os/bsd/vm/os_bsd.inline.hpp + src/os/bsd/vm/os_share_bsd.hpp + src/os/bsd/vm/perfMemory_bsd.cpp + src/os/bsd/vm/stubRoutines_bsd.cpp + src/os/bsd/vm/threadCritical_bsd.cpp + src/os/bsd/vm/thread_bsd.inline.hpp + src/os/bsd/vm/vmError_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/posix/launcher/java_md.c ! src/os/posix/launcher/launcher.script + src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/bsd_x86_32.ad + src/os_cpu/bsd_x86/vm/bsd_x86_32.s + src/os_cpu/bsd_x86/vm/bsd_x86_64.ad + src/os_cpu/bsd_x86/vm/bsd_x86_64.s + src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp + src/os_cpu/bsd_zero/vm/assembler_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/vm_version_bsd_zero.cpp ! src/os_cpu/linux_zero/vm/globals_linux_zero.hpp ! src/share/vm/adlc/adlc.hpp ! src/share/vm/c1/c1_globals.hpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/code/stubs.hpp ! src/share/vm/compiler/disassembler.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp ! src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ! src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/interpreter/abstractInterpreter.hpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/memory/allocation.cpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/gcLocker.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/resourceArea.cpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/threadLocalAllocBuffer.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/constantPoolOop.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/markOop.cpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oopsHierarchy.cpp ! src/share/vm/oops/typeArrayOop.hpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/prims/forte.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/nativeLookup.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/atomic.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.inline.hpp ! src/share/vm/runtime/interfaceSupport.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/javaCalls.hpp ! src/share/vm/runtime/javaFrameAnchor.hpp ! src/share/vm/runtime/jniHandles.cpp ! src/share/vm/runtime/memprofiler.cpp ! src/share/vm/runtime/mutex.cpp ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/mutexLocker.hpp ! src/share/vm/runtime/objectMonitor.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/osThread.hpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/task.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/threadLocalStorage.cpp ! src/share/vm/runtime/threadLocalStorage.hpp ! src/share/vm/runtime/timer.cpp ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/runtime/vmThread.hpp ! src/share/vm/runtime/vm_operations.cpp ! src/share/vm/runtime/vm_version.cpp ! src/share/vm/utilities/accessFlags.cpp ! src/share/vm/utilities/array.cpp ! src/share/vm/utilities/bitMap.cpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/decoder.cpp ! src/share/vm/utilities/decoder.hpp ! src/share/vm/utilities/elfFile.cpp ! src/share/vm/utilities/elfFile.hpp ! src/share/vm/utilities/elfStringTable.cpp ! src/share/vm/utilities/elfStringTable.hpp ! src/share/vm/utilities/elfSymbolTable.cpp ! src/share/vm/utilities/elfSymbolTable.hpp ! src/share/vm/utilities/events.cpp ! src/share/vm/utilities/exceptions.cpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/globalDefinitions_gcc.hpp ! src/share/vm/utilities/globalDefinitions_sparcWorks.hpp ! src/share/vm/utilities/globalDefinitions_visCPP.hpp ! src/share/vm/utilities/growableArray.cpp ! src/share/vm/utilities/histogram.hpp ! src/share/vm/utilities/macros.hpp ! src/share/vm/utilities/ostream.cpp ! src/share/vm/utilities/preserveException.hpp ! src/share/vm/utilities/taskqueue.cpp ! src/share/vm/utilities/taskqueue.hpp ! src/share/vm/utilities/vmError.cpp ! src/share/vm/utilities/workgroup.hpp ! test/Makefile ! test/jprt.config ! test/runtime/6929067/Test6929067.sh Changeset: a92cdbac8b9e Author: kvn Date: 2011-09-26 10:24 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/a92cdbac8b9e 7081933: Use zeroing elimination optimization for large array Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it. Reviewed-by: twisti ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/memory/oopFactory.cpp ! src/share/vm/memory/oopFactory.hpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/oops/typeArrayKlass.hpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/opto/runtime.hpp Changeset: cb315dc80374 Author: never Date: 2011-09-29 09:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/cb315dc80374 7092278: "jmap -finalizerinfo" throws "sun.jvm.hotspot.utilities.AssertionFailure: invalid cp index 0 137" Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 098acdf97f09 Author: never Date: 2011-09-29 13:47 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/098acdf97f09 7096016: SA build still produces "arg list too long" errors Reviewed-by: kvn, never Contributed-by: volker.simonis at gmail.com ! make/linux/makefiles/sa.make ! make/sa.files ! make/solaris/makefiles/sa.make ! make/windows/makefiles/sa.make Changeset: dc45ae774613 Author: iveresov Date: 2011-09-29 23:09 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/dc45ae774613 7096639: Tiered: Incorrect counter overflow handling for inlined methods Summary: Enable invocation events for inlinees Reviewed-by: kvn ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/runtime/globals.hpp Changeset: ae839d1e7d4c Author: roland Date: 2011-09-30 13:47 +0200 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/ae839d1e7d4c 7096010: c2: running with +PrintOptoAssembly crashes the VM when $constanttablebase is used Summary: ADLC generates code to prepare the register string to be printed in a char array but then calls print without the char array as an argument. Reviewed-by: never ! src/share/vm/adlc/formssel.cpp Changeset: 5d871c1ff17c Author: iveresov Date: 2011-09-30 13:48 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/5d871c1ff17c Merge ! make/Makefile ! make/linux/makefiles/defs.make ! make/solaris/makefiles/defs.make ! src/os/linux/vm/os_linux.cpp Changeset: da883b9e6d37 Author: jcoomes Date: 2011-09-30 18:27 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/da883b9e6d37 Merge ! .hgtags - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 49ed7eacfd16 Author: jcoomes Date: 2011-09-30 18:27 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/49ed7eacfd16 Added tag hs23-b01 for changeset da883b9e6d37 ! .hgtags Changeset: 7c20d272643f Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/hotspot/rev/7c20d272643f Added tag jdk8-b08 for changeset 49ed7eacfd16 ! .hgtags From michael.fang at sun.com Mon Oct 17 16:35:35 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:35:35 +0000 Subject: hg: jdk8/l10n/jaxp: 4 new changesets Message-ID: <20111017233535.8E42C47030@hg.openjdk.java.net> Changeset: d7b8192e7277 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxp/rev/d7b8192e7277 Added tag jdk8-b05 for changeset ff0a3d78e7a2 ! .hgtags Changeset: c114306576dc Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxp/rev/c114306576dc Added tag jdk8-b06 for changeset d7b8192e7277 ! .hgtags Changeset: de4794dd69c4 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxp/rev/de4794dd69c4 Added tag jdk8-b07 for changeset c114306576dc ! .hgtags Changeset: 93554324c014 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxp/rev/93554324c014 Added tag jdk8-b08 for changeset de4794dd69c4 ! .hgtags From michael.fang at sun.com Mon Oct 17 16:35:52 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:35:52 +0000 Subject: hg: jdk8/l10n/jaxws: 4 new changesets Message-ID: <20111017233552.9EC6247031@hg.openjdk.java.net> Changeset: acffff22a946 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxws/rev/acffff22a946 Added tag jdk8-b05 for changeset 7d5d91fddbce ! .hgtags Changeset: 134b0debf7b0 Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxws/rev/134b0debf7b0 Added tag jdk8-b06 for changeset acffff22a946 ! .hgtags Changeset: 1c9d4f59acf8 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxws/rev/1c9d4f59acf8 Added tag jdk8-b07 for changeset 134b0debf7b0 ! .hgtags Changeset: 70172e57cf29 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jaxws/rev/70172e57cf29 Added tag jdk8-b08 for changeset 1c9d4f59acf8 ! .hgtags From michael.fang at sun.com Mon Oct 17 16:40:41 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Mon, 17 Oct 2011 23:40:41 +0000 Subject: hg: jdk8/l10n/jdk: 86 new changesets Message-ID: <20111017235519.DFD6F47032@hg.openjdk.java.net> Changeset: 266f095ce636 Author: mbykov Date: 2011-09-09 15:21 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/266f095ce636 7087932: Wrong legal notice introduced in the JDK8 changeset c43af666d130 Reviewed-by: ohair, darcy ! src/share/classes/java/lang/VirtualMachineError.java Changeset: 0b32369b83d8 Author: schien Date: 2011-09-14 15:55 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/0b32369b83d8 Merge Changeset: 907bcdbc2593 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/907bcdbc2593 Added tag jdk8-b05 for changeset 0b32369b83d8 ! .hgtags Changeset: fbfd97a14af1 Author: dbuck Date: 2011-09-02 04:28 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/fbfd97a14af1 7074386: fallback to fontconfig..bfc/properties if fontconfig... Summary: fallback to fontconfig..bfc/properties if fontconfig... is not found Reviewed-by: prr, robm ! src/share/classes/sun/awt/FontConfiguration.java Changeset: b8b6587b9574 Author: prr Date: 2011-09-06 13:40 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/b8b6587b9574 7050826: Hebrew characters are not rendered on OEL 5.6 Reviewed-by: bae, jgodinez ! src/solaris/native/sun/awt/fontpath.c Changeset: 22149eb5a8c9 Author: lana Date: 2011-09-09 17:22 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/22149eb5a8c9 Merge - make/com/oracle/net/Makefile - src/share/classes/sun/io/ByteToCharASCII.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/ByteToCharConverter.java - src/share/classes/sun/io/ByteToCharCp037.java - src/share/classes/sun/io/ByteToCharCp1006.java - src/share/classes/sun/io/ByteToCharCp1025.java - src/share/classes/sun/io/ByteToCharCp1026.java - src/share/classes/sun/io/ByteToCharCp1046.java - src/share/classes/sun/io/ByteToCharCp1047.java - src/share/classes/sun/io/ByteToCharCp1097.java - src/share/classes/sun/io/ByteToCharCp1098.java - src/share/classes/sun/io/ByteToCharCp1112.java - src/share/classes/sun/io/ByteToCharCp1122.java - src/share/classes/sun/io/ByteToCharCp1123.java - src/share/classes/sun/io/ByteToCharCp1124.java - src/share/classes/sun/io/ByteToCharCp1140.java - src/share/classes/sun/io/ByteToCharCp1141.java - src/share/classes/sun/io/ByteToCharCp1142.java - src/share/classes/sun/io/ByteToCharCp1143.java - src/share/classes/sun/io/ByteToCharCp1144.java - src/share/classes/sun/io/ByteToCharCp1145.java - src/share/classes/sun/io/ByteToCharCp1146.java - src/share/classes/sun/io/ByteToCharCp1147.java - src/share/classes/sun/io/ByteToCharCp1148.java - src/share/classes/sun/io/ByteToCharCp1149.java - src/share/classes/sun/io/ByteToCharCp1250.java - src/share/classes/sun/io/ByteToCharCp1251.java - src/share/classes/sun/io/ByteToCharCp1252.java - src/share/classes/sun/io/ByteToCharCp1253.java - src/share/classes/sun/io/ByteToCharCp1254.java - src/share/classes/sun/io/ByteToCharCp1255.java - src/share/classes/sun/io/ByteToCharCp1256.java - src/share/classes/sun/io/ByteToCharCp1257.java - src/share/classes/sun/io/ByteToCharCp1258.java - src/share/classes/sun/io/ByteToCharCp1381.java - src/share/classes/sun/io/ByteToCharCp1383.java - src/share/classes/sun/io/ByteToCharCp273.java - src/share/classes/sun/io/ByteToCharCp277.java - src/share/classes/sun/io/ByteToCharCp278.java - src/share/classes/sun/io/ByteToCharCp280.java - src/share/classes/sun/io/ByteToCharCp284.java - src/share/classes/sun/io/ByteToCharCp285.java - src/share/classes/sun/io/ByteToCharCp297.java - src/share/classes/sun/io/ByteToCharCp33722.java - src/share/classes/sun/io/ByteToCharCp420.java - src/share/classes/sun/io/ByteToCharCp424.java - src/share/classes/sun/io/ByteToCharCp437.java - src/share/classes/sun/io/ByteToCharCp500.java - src/share/classes/sun/io/ByteToCharCp737.java - src/share/classes/sun/io/ByteToCharCp775.java - src/share/classes/sun/io/ByteToCharCp833.java - src/share/classes/sun/io/ByteToCharCp834.java - src/share/classes/sun/io/ByteToCharCp838.java - src/share/classes/sun/io/ByteToCharCp850.java - src/share/classes/sun/io/ByteToCharCp852.java - src/share/classes/sun/io/ByteToCharCp855.java - src/share/classes/sun/io/ByteToCharCp856.java - src/share/classes/sun/io/ByteToCharCp857.java - src/share/classes/sun/io/ByteToCharCp858.java - src/share/classes/sun/io/ByteToCharCp860.java - src/share/classes/sun/io/ByteToCharCp861.java - src/share/classes/sun/io/ByteToCharCp862.java - src/share/classes/sun/io/ByteToCharCp863.java - src/share/classes/sun/io/ByteToCharCp864.java - src/share/classes/sun/io/ByteToCharCp865.java - src/share/classes/sun/io/ByteToCharCp866.java - src/share/classes/sun/io/ByteToCharCp868.java - src/share/classes/sun/io/ByteToCharCp869.java - src/share/classes/sun/io/ByteToCharCp870.java - src/share/classes/sun/io/ByteToCharCp871.java - src/share/classes/sun/io/ByteToCharCp874.java - src/share/classes/sun/io/ByteToCharCp875.java - src/share/classes/sun/io/ByteToCharCp918.java - src/share/classes/sun/io/ByteToCharCp921.java - src/share/classes/sun/io/ByteToCharCp922.java - src/share/classes/sun/io/ByteToCharCp930.java - src/share/classes/sun/io/ByteToCharCp933.java - src/share/classes/sun/io/ByteToCharCp935.java - src/share/classes/sun/io/ByteToCharCp937.java - src/share/classes/sun/io/ByteToCharCp939.java - src/share/classes/sun/io/ByteToCharCp942.java - src/share/classes/sun/io/ByteToCharCp942C.java - src/share/classes/sun/io/ByteToCharCp943.java - src/share/classes/sun/io/ByteToCharCp943C.java - src/share/classes/sun/io/ByteToCharCp948.java - src/share/classes/sun/io/ByteToCharCp949.java - src/share/classes/sun/io/ByteToCharCp949C.java - src/share/classes/sun/io/ByteToCharCp950.java - src/share/classes/sun/io/ByteToCharCp964.java - src/share/classes/sun/io/ByteToCharCp970.java - src/share/classes/sun/io/ByteToCharDBCS_ASCII.java - src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java - src/share/classes/sun/io/ByteToCharDoubleByte.java - src/share/classes/sun/io/ByteToCharEUC.java - src/share/classes/sun/io/ByteToCharEUC2.java - src/share/classes/sun/io/ByteToCharEUC_CN.java - src/share/classes/sun/io/ByteToCharEUC_JP.java - src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java - src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java - src/share/classes/sun/io/ByteToCharEUC_KR.java - src/share/classes/sun/io/ByteToCharEUC_TW.java - src/share/classes/sun/io/ByteToCharGB18030.java - src/share/classes/sun/io/ByteToCharGB18030DB.java - src/share/classes/sun/io/ByteToCharGBK.java - src/share/classes/sun/io/ByteToCharISCII91.java - src/share/classes/sun/io/ByteToCharISO2022.java - src/share/classes/sun/io/ByteToCharISO2022CN.java - src/share/classes/sun/io/ByteToCharISO2022JP.java - src/share/classes/sun/io/ByteToCharISO2022KR.java - src/share/classes/sun/io/ByteToCharISO8859_1.java - src/share/classes/sun/io/ByteToCharISO8859_13.java - src/share/classes/sun/io/ByteToCharISO8859_15.java - src/share/classes/sun/io/ByteToCharISO8859_2.java - src/share/classes/sun/io/ByteToCharISO8859_3.java - src/share/classes/sun/io/ByteToCharISO8859_4.java - src/share/classes/sun/io/ByteToCharISO8859_5.java - src/share/classes/sun/io/ByteToCharISO8859_6.java - src/share/classes/sun/io/ByteToCharISO8859_7.java - src/share/classes/sun/io/ByteToCharISO8859_8.java - src/share/classes/sun/io/ByteToCharISO8859_9.java - src/share/classes/sun/io/ByteToCharJIS0201.java - src/share/classes/sun/io/ByteToCharJIS0208.java - src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java - src/share/classes/sun/io/ByteToCharJIS0212.java - src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java - src/share/classes/sun/io/ByteToCharJISAutoDetect.java - src/share/classes/sun/io/ByteToCharJohab.java - src/share/classes/sun/io/ByteToCharKOI8_R.java - src/share/classes/sun/io/ByteToCharMS874.java - src/share/classes/sun/io/ByteToCharMS932.java - src/share/classes/sun/io/ByteToCharMS936.java - src/share/classes/sun/io/ByteToCharMS949.java - src/share/classes/sun/io/ByteToCharMS950.java - src/share/classes/sun/io/ByteToCharMS950_HKSCS.java - src/share/classes/sun/io/ByteToCharMacArabic.java - src/share/classes/sun/io/ByteToCharMacCentralEurope.java - src/share/classes/sun/io/ByteToCharMacCroatian.java - src/share/classes/sun/io/ByteToCharMacCyrillic.java - src/share/classes/sun/io/ByteToCharMacDingbat.java - src/share/classes/sun/io/ByteToCharMacGreek.java - src/share/classes/sun/io/ByteToCharMacHebrew.java - src/share/classes/sun/io/ByteToCharMacIceland.java - src/share/classes/sun/io/ByteToCharMacRoman.java - src/share/classes/sun/io/ByteToCharMacRomania.java - src/share/classes/sun/io/ByteToCharMacSymbol.java - src/share/classes/sun/io/ByteToCharMacThai.java - src/share/classes/sun/io/ByteToCharMacTurkish.java - src/share/classes/sun/io/ByteToCharMacUkraine.java - src/share/classes/sun/io/ByteToCharPCK.java - src/share/classes/sun/io/ByteToCharSJIS.java - src/share/classes/sun/io/ByteToCharSingleByte.java - src/share/classes/sun/io/ByteToCharTIS620.java - src/share/classes/sun/io/ByteToCharUTF16.java - src/share/classes/sun/io/ByteToCharUTF8.java - src/share/classes/sun/io/ByteToCharUnicode.java - src/share/classes/sun/io/ByteToCharUnicodeBig.java - src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java - src/share/classes/sun/io/ByteToCharUnicodeLittle.java - src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharToByteASCII.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/CharToByteConverter.java - src/share/classes/sun/io/CharToByteCp037.java - src/share/classes/sun/io/CharToByteCp1006.java - src/share/classes/sun/io/CharToByteCp1025.java - src/share/classes/sun/io/CharToByteCp1026.java - src/share/classes/sun/io/CharToByteCp1046.java - src/share/classes/sun/io/CharToByteCp1047.java - src/share/classes/sun/io/CharToByteCp1097.java - src/share/classes/sun/io/CharToByteCp1098.java - src/share/classes/sun/io/CharToByteCp1112.java - src/share/classes/sun/io/CharToByteCp1122.java - src/share/classes/sun/io/CharToByteCp1123.java - src/share/classes/sun/io/CharToByteCp1124.java - src/share/classes/sun/io/CharToByteCp1140.java - src/share/classes/sun/io/CharToByteCp1141.java - src/share/classes/sun/io/CharToByteCp1142.java - src/share/classes/sun/io/CharToByteCp1143.java - src/share/classes/sun/io/CharToByteCp1144.java - src/share/classes/sun/io/CharToByteCp1145.java - src/share/classes/sun/io/CharToByteCp1146.java - src/share/classes/sun/io/CharToByteCp1147.java - src/share/classes/sun/io/CharToByteCp1148.java - src/share/classes/sun/io/CharToByteCp1149.java - src/share/classes/sun/io/CharToByteCp1250.java - src/share/classes/sun/io/CharToByteCp1251.java - src/share/classes/sun/io/CharToByteCp1252.java - src/share/classes/sun/io/CharToByteCp1253.java - src/share/classes/sun/io/CharToByteCp1254.java - src/share/classes/sun/io/CharToByteCp1255.java - src/share/classes/sun/io/CharToByteCp1256.java - src/share/classes/sun/io/CharToByteCp1257.java - src/share/classes/sun/io/CharToByteCp1258.java - src/share/classes/sun/io/CharToByteCp1381.java - src/share/classes/sun/io/CharToByteCp1383.java - src/share/classes/sun/io/CharToByteCp273.java - src/share/classes/sun/io/CharToByteCp277.java - src/share/classes/sun/io/CharToByteCp278.java - src/share/classes/sun/io/CharToByteCp280.java - src/share/classes/sun/io/CharToByteCp284.java - src/share/classes/sun/io/CharToByteCp285.java - src/share/classes/sun/io/CharToByteCp297.java - src/share/classes/sun/io/CharToByteCp33722.java - src/share/classes/sun/io/CharToByteCp420.java - src/share/classes/sun/io/CharToByteCp424.java - src/share/classes/sun/io/CharToByteCp437.java - src/share/classes/sun/io/CharToByteCp500.java - src/share/classes/sun/io/CharToByteCp737.java - src/share/classes/sun/io/CharToByteCp775.java - src/share/classes/sun/io/CharToByteCp833.java - src/share/classes/sun/io/CharToByteCp834.java - src/share/classes/sun/io/CharToByteCp838.java - src/share/classes/sun/io/CharToByteCp850.java - src/share/classes/sun/io/CharToByteCp852.java - src/share/classes/sun/io/CharToByteCp855.java - src/share/classes/sun/io/CharToByteCp856.java - src/share/classes/sun/io/CharToByteCp857.java - src/share/classes/sun/io/CharToByteCp858.java - src/share/classes/sun/io/CharToByteCp860.java - src/share/classes/sun/io/CharToByteCp861.java - src/share/classes/sun/io/CharToByteCp862.java - src/share/classes/sun/io/CharToByteCp863.java - src/share/classes/sun/io/CharToByteCp864.java - src/share/classes/sun/io/CharToByteCp865.java - src/share/classes/sun/io/CharToByteCp866.java - src/share/classes/sun/io/CharToByteCp868.java - src/share/classes/sun/io/CharToByteCp869.java - src/share/classes/sun/io/CharToByteCp870.java - src/share/classes/sun/io/CharToByteCp871.java - src/share/classes/sun/io/CharToByteCp874.java - src/share/classes/sun/io/CharToByteCp875.java - src/share/classes/sun/io/CharToByteCp918.java - src/share/classes/sun/io/CharToByteCp921.java - src/share/classes/sun/io/CharToByteCp922.java - src/share/classes/sun/io/CharToByteCp930.java - src/share/classes/sun/io/CharToByteCp933.java - src/share/classes/sun/io/CharToByteCp935.java - src/share/classes/sun/io/CharToByteCp937.java - src/share/classes/sun/io/CharToByteCp939.java - src/share/classes/sun/io/CharToByteCp942.java - src/share/classes/sun/io/CharToByteCp942C.java - src/share/classes/sun/io/CharToByteCp943.java - src/share/classes/sun/io/CharToByteCp943C.java - src/share/classes/sun/io/CharToByteCp948.java - src/share/classes/sun/io/CharToByteCp949.java - src/share/classes/sun/io/CharToByteCp949C.java - src/share/classes/sun/io/CharToByteCp950.java - src/share/classes/sun/io/CharToByteCp964.java - src/share/classes/sun/io/CharToByteCp970.java - src/share/classes/sun/io/CharToByteDBCS_ASCII.java - src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java - src/share/classes/sun/io/CharToByteDoubleByte.java - src/share/classes/sun/io/CharToByteEUC.java - src/share/classes/sun/io/CharToByteEUC_CN.java - src/share/classes/sun/io/CharToByteEUC_JP.java - src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java - src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java - src/share/classes/sun/io/CharToByteEUC_KR.java - src/share/classes/sun/io/CharToByteEUC_TW.java - src/share/classes/sun/io/CharToByteGB18030.java - src/share/classes/sun/io/CharToByteGBK.java - src/share/classes/sun/io/CharToByteISCII91.java - src/share/classes/sun/io/CharToByteISO2022.java - src/share/classes/sun/io/CharToByteISO2022CN_CNS.java - src/share/classes/sun/io/CharToByteISO2022CN_GB.java - src/share/classes/sun/io/CharToByteISO2022JP.java - src/share/classes/sun/io/CharToByteISO2022KR.java - src/share/classes/sun/io/CharToByteISO8859_1.java - src/share/classes/sun/io/CharToByteISO8859_13.java - src/share/classes/sun/io/CharToByteISO8859_15.java - src/share/classes/sun/io/CharToByteISO8859_2.java - src/share/classes/sun/io/CharToByteISO8859_3.java - src/share/classes/sun/io/CharToByteISO8859_4.java - src/share/classes/sun/io/CharToByteISO8859_5.java - src/share/classes/sun/io/CharToByteISO8859_6.java - src/share/classes/sun/io/CharToByteISO8859_7.java - src/share/classes/sun/io/CharToByteISO8859_8.java - src/share/classes/sun/io/CharToByteISO8859_9.java - src/share/classes/sun/io/CharToByteJIS0201.java - src/share/classes/sun/io/CharToByteJIS0208.java - src/share/classes/sun/io/CharToByteJIS0208_Solaris.java - src/share/classes/sun/io/CharToByteJIS0212.java - src/share/classes/sun/io/CharToByteJIS0212_Solaris.java - src/share/classes/sun/io/CharToByteJohab.java - src/share/classes/sun/io/CharToByteKOI8_R.java - src/share/classes/sun/io/CharToByteMS874.java - src/share/classes/sun/io/CharToByteMS932.java - src/share/classes/sun/io/CharToByteMS936.java - src/share/classes/sun/io/CharToByteMS949.java - src/share/classes/sun/io/CharToByteMS950.java - src/share/classes/sun/io/CharToByteMS950_HKSCS.java - src/share/classes/sun/io/CharToByteMacArabic.java - src/share/classes/sun/io/CharToByteMacCentralEurope.java - src/share/classes/sun/io/CharToByteMacCroatian.java - src/share/classes/sun/io/CharToByteMacCyrillic.java - src/share/classes/sun/io/CharToByteMacDingbat.java - src/share/classes/sun/io/CharToByteMacGreek.java - src/share/classes/sun/io/CharToByteMacHebrew.java - src/share/classes/sun/io/CharToByteMacIceland.java - src/share/classes/sun/io/CharToByteMacRoman.java - src/share/classes/sun/io/CharToByteMacRomania.java - src/share/classes/sun/io/CharToByteMacSymbol.java - src/share/classes/sun/io/CharToByteMacThai.java - src/share/classes/sun/io/CharToByteMacTurkish.java - src/share/classes/sun/io/CharToByteMacUkraine.java - src/share/classes/sun/io/CharToBytePCK.java - src/share/classes/sun/io/CharToByteSJIS.java - src/share/classes/sun/io/CharToByteSingleByte.java - src/share/classes/sun/io/CharToByteTIS620.java - src/share/classes/sun/io/CharToByteUTF16.java - src/share/classes/sun/io/CharToByteUTF8.java - src/share/classes/sun/io/CharToByteUnicode.java - src/share/classes/sun/io/CharToByteUnicodeBig.java - src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java - src/share/classes/sun/io/CharToByteUnicodeLittle.java - src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharacterEncoding.java - src/share/classes/sun/io/ConversionBufferFullException.java - src/share/classes/sun/io/Converters.java - src/share/classes/sun/io/MalformedInputException.java - src/share/classes/sun/io/UnknownCharacterException.java - test/sun/nio/cs/TestISCII91.java Changeset: 22c60997bf3c Author: rupashka Date: 2011-08-30 13:07 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/22c60997bf3c 7080281: AbtsractButton.checkVerticalKey()/checkHorizontalKey() methods do not specify returned value Reviewed-by: alexp ! src/share/classes/javax/swing/AbstractButton.java Changeset: 970ff8d5bbe7 Author: denis Date: 2011-09-01 17:29 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/970ff8d5bbe7 7081012: REGRESSION:Component.transferFocusBackward invokes clearGlobalFocusOwner() Reviewed-by: ant ! src/share/classes/java/awt/Component.java Changeset: 25564f7b29c4 Author: denis Date: 2011-09-05 18:54 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/25564f7b29c4 7071248: IME composition window does not disappear when file dialog is closed : Japanese WinXP Reviewed-by: naoto, art ! src/windows/native/sun/windows/awt_FileDialog.cpp Changeset: 98bb40dbc144 Author: vikram Date: 2011-09-07 03:17 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/98bb40dbc144 7012783: JFileChooser fails to resolve DFS links on Windows Vista SP2 Summary: Changes to code to handle DFS links Reviewed-by: rupashka ! src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Changeset: 7fbc8d86c477 Author: rupashka Date: 2011-09-09 17:44 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/7fbc8d86c477 7024118: possible hardcoded mnemonic for JFileChooser metal and motif l&f Reviewed-by: alexp Contributed-by: Charles Lee ! src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties ! src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties ! src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java Changeset: 8c7cecbc3567 Author: lana Date: 2011-09-09 17:23 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/8c7cecbc3567 Merge - make/com/oracle/net/Makefile - src/share/classes/sun/io/ByteToCharASCII.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/ByteToCharConverter.java - src/share/classes/sun/io/ByteToCharCp037.java - src/share/classes/sun/io/ByteToCharCp1006.java - src/share/classes/sun/io/ByteToCharCp1025.java - src/share/classes/sun/io/ByteToCharCp1026.java - src/share/classes/sun/io/ByteToCharCp1046.java - src/share/classes/sun/io/ByteToCharCp1047.java - src/share/classes/sun/io/ByteToCharCp1097.java - src/share/classes/sun/io/ByteToCharCp1098.java - src/share/classes/sun/io/ByteToCharCp1112.java - src/share/classes/sun/io/ByteToCharCp1122.java - src/share/classes/sun/io/ByteToCharCp1123.java - src/share/classes/sun/io/ByteToCharCp1124.java - src/share/classes/sun/io/ByteToCharCp1140.java - src/share/classes/sun/io/ByteToCharCp1141.java - src/share/classes/sun/io/ByteToCharCp1142.java - src/share/classes/sun/io/ByteToCharCp1143.java - src/share/classes/sun/io/ByteToCharCp1144.java - src/share/classes/sun/io/ByteToCharCp1145.java - src/share/classes/sun/io/ByteToCharCp1146.java - src/share/classes/sun/io/ByteToCharCp1147.java - src/share/classes/sun/io/ByteToCharCp1148.java - src/share/classes/sun/io/ByteToCharCp1149.java - src/share/classes/sun/io/ByteToCharCp1250.java - src/share/classes/sun/io/ByteToCharCp1251.java - src/share/classes/sun/io/ByteToCharCp1252.java - src/share/classes/sun/io/ByteToCharCp1253.java - src/share/classes/sun/io/ByteToCharCp1254.java - src/share/classes/sun/io/ByteToCharCp1255.java - src/share/classes/sun/io/ByteToCharCp1256.java - src/share/classes/sun/io/ByteToCharCp1257.java - src/share/classes/sun/io/ByteToCharCp1258.java - src/share/classes/sun/io/ByteToCharCp1381.java - src/share/classes/sun/io/ByteToCharCp1383.java - src/share/classes/sun/io/ByteToCharCp273.java - src/share/classes/sun/io/ByteToCharCp277.java - src/share/classes/sun/io/ByteToCharCp278.java - src/share/classes/sun/io/ByteToCharCp280.java - src/share/classes/sun/io/ByteToCharCp284.java - src/share/classes/sun/io/ByteToCharCp285.java - src/share/classes/sun/io/ByteToCharCp297.java - src/share/classes/sun/io/ByteToCharCp33722.java - src/share/classes/sun/io/ByteToCharCp420.java - src/share/classes/sun/io/ByteToCharCp424.java - src/share/classes/sun/io/ByteToCharCp437.java - src/share/classes/sun/io/ByteToCharCp500.java - src/share/classes/sun/io/ByteToCharCp737.java - src/share/classes/sun/io/ByteToCharCp775.java - src/share/classes/sun/io/ByteToCharCp833.java - src/share/classes/sun/io/ByteToCharCp834.java - src/share/classes/sun/io/ByteToCharCp838.java - src/share/classes/sun/io/ByteToCharCp850.java - src/share/classes/sun/io/ByteToCharCp852.java - src/share/classes/sun/io/ByteToCharCp855.java - src/share/classes/sun/io/ByteToCharCp856.java - src/share/classes/sun/io/ByteToCharCp857.java - src/share/classes/sun/io/ByteToCharCp858.java - src/share/classes/sun/io/ByteToCharCp860.java - src/share/classes/sun/io/ByteToCharCp861.java - src/share/classes/sun/io/ByteToCharCp862.java - src/share/classes/sun/io/ByteToCharCp863.java - src/share/classes/sun/io/ByteToCharCp864.java - src/share/classes/sun/io/ByteToCharCp865.java - src/share/classes/sun/io/ByteToCharCp866.java - src/share/classes/sun/io/ByteToCharCp868.java - src/share/classes/sun/io/ByteToCharCp869.java - src/share/classes/sun/io/ByteToCharCp870.java - src/share/classes/sun/io/ByteToCharCp871.java - src/share/classes/sun/io/ByteToCharCp874.java - src/share/classes/sun/io/ByteToCharCp875.java - src/share/classes/sun/io/ByteToCharCp918.java - src/share/classes/sun/io/ByteToCharCp921.java - src/share/classes/sun/io/ByteToCharCp922.java - src/share/classes/sun/io/ByteToCharCp930.java - src/share/classes/sun/io/ByteToCharCp933.java - src/share/classes/sun/io/ByteToCharCp935.java - src/share/classes/sun/io/ByteToCharCp937.java - src/share/classes/sun/io/ByteToCharCp939.java - src/share/classes/sun/io/ByteToCharCp942.java - src/share/classes/sun/io/ByteToCharCp942C.java - src/share/classes/sun/io/ByteToCharCp943.java - src/share/classes/sun/io/ByteToCharCp943C.java - src/share/classes/sun/io/ByteToCharCp948.java - src/share/classes/sun/io/ByteToCharCp949.java - src/share/classes/sun/io/ByteToCharCp949C.java - src/share/classes/sun/io/ByteToCharCp950.java - src/share/classes/sun/io/ByteToCharCp964.java - src/share/classes/sun/io/ByteToCharCp970.java - src/share/classes/sun/io/ByteToCharDBCS_ASCII.java - src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java - src/share/classes/sun/io/ByteToCharDoubleByte.java - src/share/classes/sun/io/ByteToCharEUC.java - src/share/classes/sun/io/ByteToCharEUC2.java - src/share/classes/sun/io/ByteToCharEUC_CN.java - src/share/classes/sun/io/ByteToCharEUC_JP.java - src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java - src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java - src/share/classes/sun/io/ByteToCharEUC_KR.java - src/share/classes/sun/io/ByteToCharEUC_TW.java - src/share/classes/sun/io/ByteToCharGB18030.java - src/share/classes/sun/io/ByteToCharGB18030DB.java - src/share/classes/sun/io/ByteToCharGBK.java - src/share/classes/sun/io/ByteToCharISCII91.java - src/share/classes/sun/io/ByteToCharISO2022.java - src/share/classes/sun/io/ByteToCharISO2022CN.java - src/share/classes/sun/io/ByteToCharISO2022JP.java - src/share/classes/sun/io/ByteToCharISO2022KR.java - src/share/classes/sun/io/ByteToCharISO8859_1.java - src/share/classes/sun/io/ByteToCharISO8859_13.java - src/share/classes/sun/io/ByteToCharISO8859_15.java - src/share/classes/sun/io/ByteToCharISO8859_2.java - src/share/classes/sun/io/ByteToCharISO8859_3.java - src/share/classes/sun/io/ByteToCharISO8859_4.java - src/share/classes/sun/io/ByteToCharISO8859_5.java - src/share/classes/sun/io/ByteToCharISO8859_6.java - src/share/classes/sun/io/ByteToCharISO8859_7.java - src/share/classes/sun/io/ByteToCharISO8859_8.java - src/share/classes/sun/io/ByteToCharISO8859_9.java - src/share/classes/sun/io/ByteToCharJIS0201.java - src/share/classes/sun/io/ByteToCharJIS0208.java - src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java - src/share/classes/sun/io/ByteToCharJIS0212.java - src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java - src/share/classes/sun/io/ByteToCharJISAutoDetect.java - src/share/classes/sun/io/ByteToCharJohab.java - src/share/classes/sun/io/ByteToCharKOI8_R.java - src/share/classes/sun/io/ByteToCharMS874.java - src/share/classes/sun/io/ByteToCharMS932.java - src/share/classes/sun/io/ByteToCharMS936.java - src/share/classes/sun/io/ByteToCharMS949.java - src/share/classes/sun/io/ByteToCharMS950.java - src/share/classes/sun/io/ByteToCharMS950_HKSCS.java - src/share/classes/sun/io/ByteToCharMacArabic.java - src/share/classes/sun/io/ByteToCharMacCentralEurope.java - src/share/classes/sun/io/ByteToCharMacCroatian.java - src/share/classes/sun/io/ByteToCharMacCyrillic.java - src/share/classes/sun/io/ByteToCharMacDingbat.java - src/share/classes/sun/io/ByteToCharMacGreek.java - src/share/classes/sun/io/ByteToCharMacHebrew.java - src/share/classes/sun/io/ByteToCharMacIceland.java - src/share/classes/sun/io/ByteToCharMacRoman.java - src/share/classes/sun/io/ByteToCharMacRomania.java - src/share/classes/sun/io/ByteToCharMacSymbol.java - src/share/classes/sun/io/ByteToCharMacThai.java - src/share/classes/sun/io/ByteToCharMacTurkish.java - src/share/classes/sun/io/ByteToCharMacUkraine.java - src/share/classes/sun/io/ByteToCharPCK.java - src/share/classes/sun/io/ByteToCharSJIS.java - src/share/classes/sun/io/ByteToCharSingleByte.java - src/share/classes/sun/io/ByteToCharTIS620.java - src/share/classes/sun/io/ByteToCharUTF16.java - src/share/classes/sun/io/ByteToCharUTF8.java - src/share/classes/sun/io/ByteToCharUnicode.java - src/share/classes/sun/io/ByteToCharUnicodeBig.java - src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java - src/share/classes/sun/io/ByteToCharUnicodeLittle.java - src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharToByteASCII.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/CharToByteConverter.java - src/share/classes/sun/io/CharToByteCp037.java - src/share/classes/sun/io/CharToByteCp1006.java - src/share/classes/sun/io/CharToByteCp1025.java - src/share/classes/sun/io/CharToByteCp1026.java - src/share/classes/sun/io/CharToByteCp1046.java - src/share/classes/sun/io/CharToByteCp1047.java - src/share/classes/sun/io/CharToByteCp1097.java - src/share/classes/sun/io/CharToByteCp1098.java - src/share/classes/sun/io/CharToByteCp1112.java - src/share/classes/sun/io/CharToByteCp1122.java - src/share/classes/sun/io/CharToByteCp1123.java - src/share/classes/sun/io/CharToByteCp1124.java - src/share/classes/sun/io/CharToByteCp1140.java - src/share/classes/sun/io/CharToByteCp1141.java - src/share/classes/sun/io/CharToByteCp1142.java - src/share/classes/sun/io/CharToByteCp1143.java - src/share/classes/sun/io/CharToByteCp1144.java - src/share/classes/sun/io/CharToByteCp1145.java - src/share/classes/sun/io/CharToByteCp1146.java - src/share/classes/sun/io/CharToByteCp1147.java - src/share/classes/sun/io/CharToByteCp1148.java - src/share/classes/sun/io/CharToByteCp1149.java - src/share/classes/sun/io/CharToByteCp1250.java - src/share/classes/sun/io/CharToByteCp1251.java - src/share/classes/sun/io/CharToByteCp1252.java - src/share/classes/sun/io/CharToByteCp1253.java - src/share/classes/sun/io/CharToByteCp1254.java - src/share/classes/sun/io/CharToByteCp1255.java - src/share/classes/sun/io/CharToByteCp1256.java - src/share/classes/sun/io/CharToByteCp1257.java - src/share/classes/sun/io/CharToByteCp1258.java - src/share/classes/sun/io/CharToByteCp1381.java - src/share/classes/sun/io/CharToByteCp1383.java - src/share/classes/sun/io/CharToByteCp273.java - src/share/classes/sun/io/CharToByteCp277.java - src/share/classes/sun/io/CharToByteCp278.java - src/share/classes/sun/io/CharToByteCp280.java - src/share/classes/sun/io/CharToByteCp284.java - src/share/classes/sun/io/CharToByteCp285.java - src/share/classes/sun/io/CharToByteCp297.java - src/share/classes/sun/io/CharToByteCp33722.java - src/share/classes/sun/io/CharToByteCp420.java - src/share/classes/sun/io/CharToByteCp424.java - src/share/classes/sun/io/CharToByteCp437.java - src/share/classes/sun/io/CharToByteCp500.java - src/share/classes/sun/io/CharToByteCp737.java - src/share/classes/sun/io/CharToByteCp775.java - src/share/classes/sun/io/CharToByteCp833.java - src/share/classes/sun/io/CharToByteCp834.java - src/share/classes/sun/io/CharToByteCp838.java - src/share/classes/sun/io/CharToByteCp850.java - src/share/classes/sun/io/CharToByteCp852.java - src/share/classes/sun/io/CharToByteCp855.java - src/share/classes/sun/io/CharToByteCp856.java - src/share/classes/sun/io/CharToByteCp857.java - src/share/classes/sun/io/CharToByteCp858.java - src/share/classes/sun/io/CharToByteCp860.java - src/share/classes/sun/io/CharToByteCp861.java - src/share/classes/sun/io/CharToByteCp862.java - src/share/classes/sun/io/CharToByteCp863.java - src/share/classes/sun/io/CharToByteCp864.java - src/share/classes/sun/io/CharToByteCp865.java - src/share/classes/sun/io/CharToByteCp866.java - src/share/classes/sun/io/CharToByteCp868.java - src/share/classes/sun/io/CharToByteCp869.java - src/share/classes/sun/io/CharToByteCp870.java - src/share/classes/sun/io/CharToByteCp871.java - src/share/classes/sun/io/CharToByteCp874.java - src/share/classes/sun/io/CharToByteCp875.java - src/share/classes/sun/io/CharToByteCp918.java - src/share/classes/sun/io/CharToByteCp921.java - src/share/classes/sun/io/CharToByteCp922.java - src/share/classes/sun/io/CharToByteCp930.java - src/share/classes/sun/io/CharToByteCp933.java - src/share/classes/sun/io/CharToByteCp935.java - src/share/classes/sun/io/CharToByteCp937.java - src/share/classes/sun/io/CharToByteCp939.java - src/share/classes/sun/io/CharToByteCp942.java - src/share/classes/sun/io/CharToByteCp942C.java - src/share/classes/sun/io/CharToByteCp943.java - src/share/classes/sun/io/CharToByteCp943C.java - src/share/classes/sun/io/CharToByteCp948.java - src/share/classes/sun/io/CharToByteCp949.java - src/share/classes/sun/io/CharToByteCp949C.java - src/share/classes/sun/io/CharToByteCp950.java - src/share/classes/sun/io/CharToByteCp964.java - src/share/classes/sun/io/CharToByteCp970.java - src/share/classes/sun/io/CharToByteDBCS_ASCII.java - src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java - src/share/classes/sun/io/CharToByteDoubleByte.java - src/share/classes/sun/io/CharToByteEUC.java - src/share/classes/sun/io/CharToByteEUC_CN.java - src/share/classes/sun/io/CharToByteEUC_JP.java - src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java - src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java - src/share/classes/sun/io/CharToByteEUC_KR.java - src/share/classes/sun/io/CharToByteEUC_TW.java - src/share/classes/sun/io/CharToByteGB18030.java - src/share/classes/sun/io/CharToByteGBK.java - src/share/classes/sun/io/CharToByteISCII91.java - src/share/classes/sun/io/CharToByteISO2022.java - src/share/classes/sun/io/CharToByteISO2022CN_CNS.java - src/share/classes/sun/io/CharToByteISO2022CN_GB.java - src/share/classes/sun/io/CharToByteISO2022JP.java - src/share/classes/sun/io/CharToByteISO2022KR.java - src/share/classes/sun/io/CharToByteISO8859_1.java - src/share/classes/sun/io/CharToByteISO8859_13.java - src/share/classes/sun/io/CharToByteISO8859_15.java - src/share/classes/sun/io/CharToByteISO8859_2.java - src/share/classes/sun/io/CharToByteISO8859_3.java - src/share/classes/sun/io/CharToByteISO8859_4.java - src/share/classes/sun/io/CharToByteISO8859_5.java - src/share/classes/sun/io/CharToByteISO8859_6.java - src/share/classes/sun/io/CharToByteISO8859_7.java - src/share/classes/sun/io/CharToByteISO8859_8.java - src/share/classes/sun/io/CharToByteISO8859_9.java - src/share/classes/sun/io/CharToByteJIS0201.java - src/share/classes/sun/io/CharToByteJIS0208.java - src/share/classes/sun/io/CharToByteJIS0208_Solaris.java - src/share/classes/sun/io/CharToByteJIS0212.java - src/share/classes/sun/io/CharToByteJIS0212_Solaris.java - src/share/classes/sun/io/CharToByteJohab.java - src/share/classes/sun/io/CharToByteKOI8_R.java - src/share/classes/sun/io/CharToByteMS874.java - src/share/classes/sun/io/CharToByteMS932.java - src/share/classes/sun/io/CharToByteMS936.java - src/share/classes/sun/io/CharToByteMS949.java - src/share/classes/sun/io/CharToByteMS950.java - src/share/classes/sun/io/CharToByteMS950_HKSCS.java - src/share/classes/sun/io/CharToByteMacArabic.java - src/share/classes/sun/io/CharToByteMacCentralEurope.java - src/share/classes/sun/io/CharToByteMacCroatian.java - src/share/classes/sun/io/CharToByteMacCyrillic.java - src/share/classes/sun/io/CharToByteMacDingbat.java - src/share/classes/sun/io/CharToByteMacGreek.java - src/share/classes/sun/io/CharToByteMacHebrew.java - src/share/classes/sun/io/CharToByteMacIceland.java - src/share/classes/sun/io/CharToByteMacRoman.java - src/share/classes/sun/io/CharToByteMacRomania.java - src/share/classes/sun/io/CharToByteMacSymbol.java - src/share/classes/sun/io/CharToByteMacThai.java - src/share/classes/sun/io/CharToByteMacTurkish.java - src/share/classes/sun/io/CharToByteMacUkraine.java - src/share/classes/sun/io/CharToBytePCK.java - src/share/classes/sun/io/CharToByteSJIS.java - src/share/classes/sun/io/CharToByteSingleByte.java - src/share/classes/sun/io/CharToByteTIS620.java - src/share/classes/sun/io/CharToByteUTF16.java - src/share/classes/sun/io/CharToByteUTF8.java - src/share/classes/sun/io/CharToByteUnicode.java - src/share/classes/sun/io/CharToByteUnicodeBig.java - src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java - src/share/classes/sun/io/CharToByteUnicodeLittle.java - src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharacterEncoding.java - src/share/classes/sun/io/ConversionBufferFullException.java - src/share/classes/sun/io/Converters.java - src/share/classes/sun/io/MalformedInputException.java - src/share/classes/sun/io/UnknownCharacterException.java - test/sun/nio/cs/TestISCII91.java Changeset: 0595eb21e9b5 Author: lana Date: 2011-09-12 15:49 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/0595eb21e9b5 Merge Changeset: 6d6d75421e8a Author: weijun Date: 2011-08-30 10:46 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/6d6d75421e8a 7083576: add javax/xml/crypto into jdk_security2 Reviewed-by: mullan ! test/Makefile ! test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java Changeset: fe205518c3a7 Author: michaelm Date: 2011-08-30 14:40 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/fe205518c3a7 7084560: Crash in net.dll Reviewed-by: chegar Contributed-by: luchsh at linux.vnet.ibm.com ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/NetworkInterface_winXP.c Changeset: ef4f24534a96 Author: michaelm Date: 2011-08-30 14:41 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/ef4f24534a96 Merge Changeset: 8a51f0e24380 Author: sherman Date: 2011-08-30 11:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/8a51f0e24380 7084245: Update usages of InternalError to use exception chaining Summary: to use new InternalError constructor with cause chainning Reviewed-by: alanb, ksrini, xuelei, neugens Contributed-by: sebastian.sickelmann at gmx.de ! src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java ! src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java ! src/share/classes/com/sun/jmx/snmp/SnmpInt.java ! src/share/classes/com/sun/jmx/snmp/SnmpNull.java ! src/share/classes/com/sun/jmx/snmp/SnmpString.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java ! src/share/classes/com/sun/servicetag/BrowserSupport.java ! src/share/classes/com/sun/servicetag/RegistrationDocument.java ! src/share/classes/java/awt/BufferCapabilities.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/GridBagConstraints.java ! src/share/classes/java/awt/ImageCapabilities.java ! src/share/classes/java/awt/Insets.java ! src/share/classes/java/awt/JobAttributes.java ! src/share/classes/java/awt/PageAttributes.java ! src/share/classes/java/awt/RenderingHints.java ! src/share/classes/java/awt/font/TextLayout.java ! src/share/classes/java/awt/geom/AffineTransform.java ! src/share/classes/java/awt/geom/CubicCurve2D.java ! src/share/classes/java/awt/geom/Dimension2D.java ! src/share/classes/java/awt/geom/Line2D.java ! src/share/classes/java/awt/geom/Point2D.java ! src/share/classes/java/awt/geom/QuadCurve2D.java ! src/share/classes/java/awt/geom/RectangularShape.java ! src/share/classes/java/awt/image/ImageFilter.java ! src/share/classes/java/awt/image/Kernel.java ! src/share/classes/java/io/ObjectStreamClass.java ! src/share/classes/java/lang/CharacterName.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/invoke/CallSite.java ! src/share/classes/java/lang/invoke/Invokers.java ! src/share/classes/java/lang/invoke/MemberName.java ! src/share/classes/java/lang/invoke/MethodHandleStatics.java ! src/share/classes/java/lang/invoke/MethodTypeForm.java ! src/share/classes/java/lang/reflect/Proxy.java ! src/share/classes/java/rmi/dgc/VMID.java ! src/share/classes/java/security/cert/CollectionCertStoreParameters.java ! src/share/classes/java/security/cert/LDAPCertStoreParameters.java ! src/share/classes/java/security/cert/PKIXCertPathChecker.java ! src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java ! src/share/classes/java/security/cert/PKIXParameters.java ! src/share/classes/java/security/cert/X509CRLSelector.java ! src/share/classes/java/security/cert/X509CertSelector.java ! src/share/classes/java/text/AttributedString.java ! src/share/classes/java/text/BreakDictionary.java ! src/share/classes/java/text/BreakIterator.java ! src/share/classes/java/text/Collator.java ! src/share/classes/java/text/DateFormatSymbols.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/DecimalFormatSymbols.java ! src/share/classes/java/text/DigitList.java ! src/share/classes/java/text/Format.java ! src/share/classes/java/text/RuleBasedBreakIterator.java ! src/share/classes/java/text/StringCharacterIterator.java ! src/share/classes/java/util/ArrayList.java ! src/share/classes/java/util/BitSet.java ! src/share/classes/java/util/Calendar.java ! src/share/classes/java/util/Currency.java ! src/share/classes/java/util/HashSet.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/IdentityHashMap.java ! src/share/classes/java/util/LinkedList.java ! src/share/classes/java/util/Locale.java ! src/share/classes/java/util/ResourceBundle.java ! src/share/classes/java/util/TimeZone.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/UUID.java ! src/share/classes/java/util/Vector.java ! src/share/classes/java/util/zip/ZipEntry.java ! src/share/classes/javax/management/openmbean/TabularDataSupport.java ! src/share/classes/javax/swing/text/ElementIterator.java ! src/share/classes/javax/swing/text/rtf/RTFReader.java ! src/share/classes/sun/dc/DuctusRenderingEngine.java ! src/share/classes/sun/font/FontLineMetrics.java ! src/share/classes/sun/font/GlyphLayout.java ! src/share/classes/sun/invoke/util/ValueConversions.java ! src/share/classes/sun/java2d/pipe/LoopPipe.java ! src/share/classes/sun/management/counter/perf/PerfDataEntry.java ! src/share/classes/sun/management/counter/perf/PerfDataType.java ! src/share/classes/sun/misc/Launcher.java ! src/share/classes/sun/misc/ProxyGenerator.java ! src/share/classes/sun/net/NetworkClient.java ! src/share/classes/sun/net/NetworkServer.java ! src/share/classes/sun/net/ftp/impl/FtpClient.java ! src/share/classes/sun/net/smtp/SmtpClient.java ! src/share/classes/sun/net/www/http/ChunkedOutputStream.java ! src/share/classes/sun/net/www/http/HttpClient.java ! src/share/classes/sun/net/www/protocol/gopher/GopherClient.java ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/share/classes/sun/nio/ch/Util.java ! src/share/classes/sun/reflect/UTF8.java ! src/share/classes/sun/reflect/misc/MethodUtil.java ! src/share/classes/sun/rmi/transport/LiveRef.java ! src/share/classes/sun/security/provider/SecureRandom.java ! src/share/classes/sun/security/provider/SeedGenerator.java ! src/share/classes/sun/security/provider/certpath/ForwardState.java ! src/share/classes/sun/security/provider/certpath/ReverseState.java ! src/share/classes/sun/security/provider/certpath/URICertStore.java ! src/share/classes/sun/security/util/SecurityConstants.java ! src/share/classes/sun/text/CompactByteArray.java ! src/share/classes/sun/text/normalizer/NormalizerBase.java ! src/share/classes/sun/tools/attach/HotSpotAttachProvider.java ! src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java ! src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java ! src/share/classes/sun/tools/tree/Node.java ! src/share/classes/sun/tracing/dtrace/DTraceProvider.java ! src/share/classes/sun/util/calendar/CalendarDate.java ! src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java ! src/solaris/classes/sun/awt/X11/XMenuItemPeer.java ! src/solaris/classes/sun/nio/ch/InheritedChannel.java ! src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java Changeset: f5120b47f93d Author: weijun Date: 2011-08-31 09:22 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/f5120b47f93d 7083664: test hard code of using c:/temp but this dir might not exist Reviewed-by: xuelei, ohair ! test/lib/security/java.policy/Ext_AllPolicy.sh ! test/sun/security/tools/jarsigner/AlgOptions.sh ! test/sun/security/tools/jarsigner/PercentSign.sh ! test/sun/security/tools/jarsigner/diffend.sh ! test/sun/security/tools/jarsigner/oldsig.sh ! test/sun/security/tools/keytool/AltProviderPath.sh ! test/sun/security/tools/keytool/SecretKeyKS.sh ! test/sun/security/tools/keytool/StandardAlgName.sh ! test/sun/security/tools/keytool/i18n.sh ! test/sun/security/tools/keytool/resource.sh ! test/sun/security/tools/policytool/Alias.sh ! test/sun/security/tools/policytool/ChangeUI.sh ! test/sun/security/tools/policytool/OpenPolicy.sh ! test/sun/security/tools/policytool/SaveAs.sh ! test/sun/security/tools/policytool/UpdatePermissions.sh ! test/sun/security/tools/policytool/UsePolicy.sh ! test/sun/security/tools/policytool/i18n.sh Changeset: a5a28b040714 Author: chegar Date: 2011-09-01 06:45 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/a5a28b040714 7014860: Socket.getInputStream().available() not clear for shutdown input Reviewed-by: alanb, michaelm ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocketImpl.java + test/java/net/Socket/ShutdownInput.java Changeset: fcb33500b325 Author: chegar Date: 2011-09-01 13:53 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/fcb33500b325 7041800: URI.equals may incorrectly return true with escaped octets Reviewed-by: alanb, michaelm ! src/share/classes/java/net/URI.java ! test/java/net/URI/Test.java Changeset: ffada2ce20e5 Author: darcy Date: 2011-09-01 23:00 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/ffada2ce20e5 7082971: More performance tuning of BigDecimal and other java.math classes Reviewed-by: darcy Contributed-by: sergey.kuksenko at oracle.com ! src/share/classes/java/math/BigDecimal.java ! src/share/classes/java/math/BigInteger.java ! src/share/classes/java/math/MutableBigInteger.java ! test/java/math/BigDecimal/DivideMcTests.java ! test/java/math/BigDecimal/FloatDoubleValueTests.java ! test/java/math/BigDecimal/RangeTests.java ! test/java/math/BigDecimal/StrippingZerosTest.java ! test/java/math/BigDecimal/ToPlainStringTests.java Changeset: 812c6d4d6a58 Author: sherman Date: 2011-09-02 10:20 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/812c6d4d6a58 6898310: (cs) Charset cache lookups should be synchronized Summary: synchronize the lookup in iterator Reviewed-by: alanb ! src/share/classes/sun/nio/cs/AbstractCharsetProvider.java Changeset: 95aff7cbf590 Author: darcy Date: 2011-09-02 16:06 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/95aff7cbf590 6989067: BigInteger's array copiers should be converted to System.arraycopy() Reviewed-by: mduigou, forax ! src/share/classes/java/math/BigInteger.java Changeset: 5b8f8397379f Author: chegar Date: 2011-09-03 07:46 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/5b8f8397379f 7084032: test/java/net/Inet6Address/B6558853.java fails on Windows XP/2003 if IPv6 Reviewed-by: chegar Contributed-by: kurchi.subhra.hazra at oracle.com ! src/windows/native/java/net/TwoStacksPlainSocketImpl.c Changeset: 62c25e4c30a3 Author: weijun Date: 2011-09-05 11:22 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/62c25e4c30a3 7081783: jarsigner error when no $HOME/.keystore Reviewed-by: xuelei ! src/share/classes/sun/security/tools/JarSigner.java Changeset: 1d247911e035 Author: weijun Date: 2011-09-05 18:17 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/1d247911e035 7081411: DSA keypair generation affected by Solaris bug Reviewed-by: xuelei, mullan, alanb ! test/ProblemList.txt + test/java/security/KeyPairGenerator/SolarisShortDSA.java Changeset: 946e3b786d2d Author: coffeys Date: 2011-09-05 11:28 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/946e3b786d2d 7049079: NTSYSTEM CLASS IS LEAKING WINDOWS TOKENS Reviewed-by: weijun ! src/share/classes/com/sun/security/auth/module/NTSystem.java ! src/windows/native/com/sun/security/auth/module/nt.c Changeset: 43880d125b79 Author: darcy Date: 2011-09-05 08:04 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/43880d125b79 7086710: java/util/Formatter/Basic.java failing after 7082971 Reviewed-by: alanb ! src/share/classes/java/math/BigDecimal.java Changeset: 5077e7a68259 Author: darcy Date: 2011-09-06 06:17 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/5077e7a68259 6838776: Defer initialization of static fields in java.math.BigInteger Reviewed-by: mduigou, mduigou ! src/share/classes/java/math/BigDecimal.java ! src/share/classes/java/math/BigInteger.java Changeset: c62794c9caea Author: weijun Date: 2011-09-07 08:56 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/c62794c9caea 7067974: multiple ETYPE-INFO-ENTRY with same etype and different salt Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/EncryptionKey.java ! src/share/classes/sun/security/krb5/KrbAsRep.java ! src/share/classes/sun/security/krb5/KrbAsReqBuilder.java ! src/share/classes/sun/security/krb5/internal/KRBError.java ! src/share/classes/sun/security/krb5/internal/PAData.java + test/sun/security/krb5/auto/DupEtypes.java ! test/sun/security/krb5/auto/KDC.java Changeset: fa1e7738a136 Author: darcy Date: 2011-09-06 21:19 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/fa1e7738a136 7086192: (reflect) Have TypeVariable extend AnnotatedElement Reviewed-by: mcimadamore ! src/share/classes/java/lang/reflect/TypeVariable.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java + test/java/lang/reflect/TypeVariable/TestAnnotatedElement.java Changeset: be949e12cab0 Author: mchung Date: 2011-09-07 13:42 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/be949e12cab0 7078024: Update JDK service tag for JDK 8 Reviewed-by: paulk ! make/com/sun/servicetag/Makefile ! src/share/classes/com/sun/servicetag/Installer.java + src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties ! test/com/sun/servicetag/JavaServiceTagTest.java ! test/com/sun/servicetag/JavaServiceTagTest1.java Changeset: 6dab08f1cabb Author: weijun Date: 2011-09-08 09:04 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/6dab08f1cabb 7087428: move client tests out of jdk_misc Reviewed-by: alanb, ohair ! make/jprt.properties ! test/Makefile Changeset: 0e6076fed003 Author: weijun Date: 2011-09-09 11:18 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/0e6076fed003 7047200: keytool safe store Reviewed-by: xuelei ! src/share/classes/sun/security/tools/KeyTool.java + test/sun/security/tools/keytool/trystore.sh Changeset: e8eee45e1ca5 Author: michaelm Date: 2011-09-09 14:04 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/e8eee45e1ca5 7085981: XXSocket types depend on impl finalizer to close if constructor throws exception Reviewed-by: alanb, chegar ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/Socket.java Changeset: 0ba4b29c7d9a Author: michaelm Date: 2011-09-09 14:14 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/0ba4b29c7d9a Merge Changeset: e995c36bb1eb Author: michaelm Date: 2011-09-09 15:24 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/e995c36bb1eb 7088747: Use multicatch in Socket constructor Reviewed-by: alanb ! src/share/classes/java/net/Socket.java Changeset: c91176b44c9b Author: alanb Date: 2011-09-10 14:55 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/c91176b44c9b 7089131: test/java/lang/invoke/InvokeGenericTest.java does not compile Reviewed-by: darcy, jrose ! test/java/lang/invoke/InvokeGenericTest.java Changeset: 22c843299c5b Author: lana Date: 2011-09-10 21:30 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/22c843299c5b Merge Changeset: d8658f371633 Author: lana Date: 2011-09-12 16:59 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/d8658f371633 Merge ! src/share/classes/java/awt/Component.java Changeset: bdb870cc269e Author: lana Date: 2011-09-19 19:40 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/bdb870cc269e Merge Changeset: 19f0a3db863c Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/19f0a3db863c Added tag jdk8-b06 for changeset bdb870cc269e ! .hgtags Changeset: ac9349be6821 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/ac9349be6821 Added tag jdk8-b07 for changeset 19f0a3db863c ! .hgtags Changeset: b92341e9ae56 Author: bae Date: 2011-09-19 05:56 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/b92341e9ae56 7088287: libpng need to be updated. Reviewed-by: jgodinez, prr ! src/share/native/sun/awt/libpng/CHANGES ! src/share/native/sun/awt/libpng/LICENSE ! src/share/native/sun/awt/libpng/README ! src/share/native/sun/awt/libpng/png.c ! src/share/native/sun/awt/libpng/png.h ! src/share/native/sun/awt/libpng/pngconf.h + src/share/native/sun/awt/libpng/pngdebug.h ! src/share/native/sun/awt/libpng/pngerror.c - src/share/native/sun/awt/libpng/pnggccrd.c ! src/share/native/sun/awt/libpng/pngget.c + src/share/native/sun/awt/libpng/pnginfo.h + src/share/native/sun/awt/libpng/pnglibconf.h ! src/share/native/sun/awt/libpng/pngmem.c ! src/share/native/sun/awt/libpng/pngpread.c + src/share/native/sun/awt/libpng/pngpriv.h ! src/share/native/sun/awt/libpng/pngread.c ! src/share/native/sun/awt/libpng/pngrio.c ! src/share/native/sun/awt/libpng/pngrtran.c ! src/share/native/sun/awt/libpng/pngrutil.c ! src/share/native/sun/awt/libpng/pngset.c + src/share/native/sun/awt/libpng/pngstruct.h ! src/share/native/sun/awt/libpng/pngtest.c ! src/share/native/sun/awt/libpng/pngtrans.c - src/share/native/sun/awt/libpng/pngvcrd.c ! src/share/native/sun/awt/libpng/pngwio.c ! src/share/native/sun/awt/libpng/pngwrite.c ! src/share/native/sun/awt/libpng/pngwtran.c ! src/share/native/sun/awt/libpng/pngwutil.c ! src/share/native/sun/awt/splashscreen/splashscreen_png.c Changeset: bbf4e1faf859 Author: lana Date: 2011-09-23 16:50 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/bbf4e1faf859 Merge Changeset: c662c8cf25d6 Author: lana Date: 2011-09-26 14:29 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/c662c8cf25d6 Merge - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: 3487d0d48662 Author: rupashka Date: 2011-09-15 16:43 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/3487d0d48662 7090007: Missing style.css in nimbus/doc-files/properties.html Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html Changeset: 16c3dcad4252 Author: rupashka Date: 2011-09-21 17:08 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/16c3dcad4252 7032018: The file list in JFileChooser does not have an accessible name Reviewed-by: rupashka Contributed-by: Charles Lee ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.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_pt_BR.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/swing/FilePane.java Changeset: 44040ece133c Author: lana Date: 2011-09-23 16:51 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/44040ece133c Merge Changeset: 44f50834b79c Author: rupashka Date: 2011-09-26 17:37 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/44f50834b79c 7088744: SwingUtilities.isMiddleMouseButton does not work with ALT/Meta keys Reviewed-by: alexp ! src/share/classes/javax/swing/SwingUtilities.java + test/javax/swing/SwingUtilities/7088744/bug7088744.java Changeset: d72ac458b2b7 Author: anthony Date: 2011-09-26 17:59 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/d72ac458b2b7 7081670: Disposing an AppContext can lead to a spinning EventDispatchThread Reviewed-by: art, anthony, dholmes Contributed-by: Clemens Eisserer ! src/share/classes/java/awt/EventDispatchThread.java ! src/share/classes/java/awt/EventQueue.java Changeset: 7fd192952459 Author: denis Date: 2011-09-26 18:18 +0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/7fd192952459 7080289: AWTKeystroke class registers a subclass factory during deserialization Reviewed-by: serb ! src/share/classes/java/awt/AWTKeyStroke.java Changeset: aac4041609bb Author: lana Date: 2011-09-26 14:30 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/aac4041609bb Merge Changeset: e0c1282a0ead Author: coffeys Date: 2011-09-13 11:21 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/e0c1282a0ead 7082769: FileInputStream/FileOutputStream/RandomAccessFile allow file descriptor be closed when still in use Reviewed-by: alanb ! src/share/classes/java/io/FileInputStream.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/io/RandomAccessFile.java + test/java/io/etc/FileDescriptorSharing.java Changeset: 04672e957da0 Author: mchung Date: 2011-09-14 08:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/04672e957da0 6915797: Remove sun.tools.jar.JarImageSource that is not used 7090178: Move java.util.XMLUtils to another package to avoid split package Reviewed-by: alanb, sherman ! make/java/java/FILES_java.gmk ! make/sun/Makefile + make/sun/util/Makefile ! src/share/classes/java/util/Properties.java - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java + src/share/classes/sun/util/xml/XMLUtils.java Changeset: 2a8072c7cf99 Author: darcy Date: 2011-09-14 11:32 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/2a8072c7cf99 6879143: java.math.BigInteger misses the xxxValueExact methods Reviewed-by: alanb ! src/share/classes/java/math/BigInteger.java + test/java/math/BigInteger/TestValueExact.java Changeset: 84da01e00e6c Author: darcy Date: 2011-09-14 13:09 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/84da01e00e6c 7088500: there is no @since tag on SafeVarargs Reviewed-by: mduigou ! src/share/classes/java/lang/SafeVarargs.java Changeset: 52bc200b14e5 Author: mbankal Date: 2011-09-14 21:43 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/52bc200b14e5 7049963: DISTINGUISHED NAMES FOR CERT ARE ESCAPED IN JROCKIT 1.6(NOT COMPATIBLE WITH JROC Reviewed-by: mullan ! src/share/classes/sun/security/x509/AVA.java Changeset: 1260be51581f Author: mbankal Date: 2011-09-14 22:36 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/1260be51581f Merge Changeset: f114bddac6d6 Author: peytoia Date: 2011-09-15 14:45 +0900 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/f114bddac6d6 7090844: Support a timezone whose offset is changed more than once in the future Reviewed-by: okutsu ! make/tools/src/build/tools/javazic/Mappings.java Changeset: 5e403e9fa34a Author: peytoia Date: 2011-09-15 15:02 +0900 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/5e403e9fa34a 7090843: (tz) Support tzdata2011j Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/africa ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/iso3166.tab ! make/sun/javazic/tzdata/northamerica ! make/sun/javazic/tzdata/southamerica ! 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_pt_BR.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: 9281d65f911a Author: michaelm Date: 2011-09-15 13:50 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/9281d65f911a 7073491: -Dsun.net.maxDatagramSockets=1 does not work correctly with system.gc() Reviewed-by: ngmr ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java Changeset: 34fc7bbbb465 Author: michaelm Date: 2011-09-15 14:10 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/34fc7bbbb465 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java Changeset: 75d763111eec Author: chegar Date: 2011-09-16 12:09 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/75d763111eec 7090158: Networking Libraries don't build with javac -Werror Summary: Minor changes to networking java files to remove warnings Reviewed-by: chegar, weijun, hawtin Contributed-by: kurchi.subhra.hazra at oracle.com, sasha_bu at hotmail.com ! make/com/sun/net/httpserver/Makefile ! make/com/sun/net/ssl/Makefile ! make/java/net/Makefile ! make/javax/Makefile ! make/javax/others/Makefile ! make/sun/net/Makefile ! make/sun/net/spi/Makefile ! make/sun/net/spi/nameservice/dns/Makefile ! src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java ! src/share/classes/com/sun/net/httpserver/Headers.java ! src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java ! src/share/classes/com/sun/net/ssl/SSLSecurity.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java ! src/share/classes/java/net/ContentHandler.java ! src/share/classes/java/net/CookieManager.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/HttpURLConnection.java ! src/share/classes/java/net/Inet4Address.java ! src/share/classes/java/net/Inet4AddressImpl.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/Inet6AddressImpl.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/Proxy.java ! src/share/classes/java/net/ProxySelector.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocketPermission.java ! src/share/classes/java/net/URL.java ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/java/net/URLConnection.java ! src/share/classes/javax/net/ssl/SSLServerSocketFactory.java ! src/share/classes/javax/net/ssl/SSLSocketFactory.java ! src/share/classes/sun/misc/REException.java ! src/share/classes/sun/net/TransferProtocolClient.java ! src/share/classes/sun/net/ftp/FtpClientProvider.java ! src/share/classes/sun/net/httpserver/Request.java ! src/share/classes/sun/net/httpserver/SSLStreams.java ! src/share/classes/sun/net/httpserver/ServerImpl.java ! src/share/classes/sun/net/idn/UCharacterEnums.java ! src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java ! src/share/classes/sun/net/www/HeaderParser.java ! src/share/classes/sun/net/www/MessageHeader.java ! src/share/classes/sun/net/www/MimeTable.java ! src/share/classes/sun/net/www/URLConnection.java ! src/share/classes/sun/net/www/content/image/gif.java ! src/share/classes/sun/net/www/content/image/jpeg.java ! src/share/classes/sun/net/www/content/image/png.java ! src/share/classes/sun/net/www/content/image/x_xbitmap.java ! src/share/classes/sun/net/www/content/image/x_xpixmap.java ! src/share/classes/sun/net/www/http/KeepAliveStream.java ! src/share/classes/sun/net/www/protocol/gopher/GopherClient.java ! src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java ! src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/net/www/protocol/http/Negotiator.java ! src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/share/classes/sun/net/www/protocol/mailto/Handler.java ! src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/solaris/classes/java/net/PlainDatagramSocketImpl.java ! src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java ! src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java Changeset: ccf2a19d7d87 Author: alanb Date: 2011-09-18 12:33 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/ccf2a19d7d87 7091935: (fs) Polling based WatchService not used on Linux Reviewed-by: forax ! make/java/nio/Makefile Changeset: 418628a08ae7 Author: darcy Date: 2011-09-18 18:14 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/418628a08ae7 7091682: Move sun.misc.FpUtils code into java.lang.Math Reviewed-by: alanb ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/StrictMath.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/sun/misc/FloatingDecimal.java ! src/share/classes/sun/misc/FormattedFloatingDecimal.java ! src/share/classes/sun/misc/FpUtils.java ! test/java/lang/Double/ToHexString.java ! test/java/lang/Math/CubeRootTests.java ! test/java/lang/Math/Expm1Tests.java ! test/java/lang/Math/HyperbolicTests.java ! test/java/lang/Math/HypotTests.java ! test/java/lang/Math/IeeeRecommendedTests.java ! test/java/lang/Math/Log10Tests.java ! test/java/lang/Math/Log1pTests.java ! test/java/lang/Math/Rint.java Changeset: e3d78fe803d4 Author: michaelm Date: 2011-09-19 15:14 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/e3d78fe803d4 7091369: DatagramSocket/Limit.java failing on 8 and 7u2 Reviewed-by: chegar, alanb ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java Changeset: 8fe6d94683af Author: weijun Date: 2011-09-20 12:40 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/8fe6d94683af 7091290: fails to build jdk8 b05 Embedded build Reviewed-by: xuelei, dholmes ! src/share/classes/org/ietf/jgss/Oid.java Changeset: c77b41652266 Author: mduigou Date: 2011-09-20 12:27 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/c77b41652266 7074264: Switches to packages tree view and adds unit tests to sources Reviewed-by: igor ! make/netbeans/README ! make/netbeans/common/closed-share-view.ent ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/java-data-no-native.ent ! make/netbeans/common/jtreg-view.ent ! make/netbeans/common/sample-view.ent ! make/netbeans/common/share-view.ent ! make/netbeans/common/unix-view.ent ! make/netbeans/common/windows-view.ent ! make/netbeans/j2se/nbproject/project.xml Changeset: 9b2fc8a11421 Author: darcy Date: 2011-09-20 18:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/9b2fc8a11421 6268216: Boolean.getBoolean() throws SecurityException Reviewed-by: mduigou ! src/share/classes/java/lang/Boolean.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Long.java Changeset: 029ba13aa0df Author: dcubed Date: 2011-09-20 19:16 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/029ba13aa0df 7085944: 3/3 FDS: gdb does not find debug symbols for libjsig link Summary: Add support for importing .debuginfo files from HSX. Reviewed-by: phh ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/java/redist/Makefile ! make/java/redist/sajdi/Makefile Changeset: d177eecda07e Author: dholmes Date: 2011-09-20 22:20 -0400 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/d177eecda07e 7012206: ~20 tools tests failing due to -XX:-UsePerfData default in Java SE Embedded Summary: Explicitly enable UsePerfData for the tools that require it to be enabled Reviewed-by: alanb, ohair ! test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java ! test/sun/tools/common/ApplicationSetup.sh ! test/sun/tools/jinfo/Basic.sh ! test/sun/tools/jmap/Basic.sh ! test/sun/tools/jps/jps-Defaults.sh ! test/sun/tools/jps/jps-V_2.sh ! test/sun/tools/jps/jps-Vm_2.sh ! test/sun/tools/jps/jps-Vvm.sh ! test/sun/tools/jps/jps-Vvml.sh ! test/sun/tools/jps/jps-Vvml_2.sh ! test/sun/tools/jps/jps-help.sh ! test/sun/tools/jps/jps-l_1.sh ! test/sun/tools/jps/jps-l_2.sh ! test/sun/tools/jps/jps-lm.sh ! test/sun/tools/jps/jps-m.sh ! test/sun/tools/jps/jps-m_2.sh ! test/sun/tools/jps/jps-q.sh ! test/sun/tools/jps/jps-v_1.sh ! test/sun/tools/jps/jps-vm_1.sh ! test/sun/tools/jstack/Basic.sh ! test/sun/tools/jstat/jstatClassOutput1.sh ! test/sun/tools/jstat/jstatClassloadOutput1.sh ! test/sun/tools/jstat/jstatCompilerOutput1.sh ! test/sun/tools/jstat/jstatFileURITest1.sh ! test/sun/tools/jstat/jstatGcCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcCauseOutput1.sh ! test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcNewOutput1.sh ! test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcOldOutput1.sh ! test/sun/tools/jstat/jstatGcOutput1.sh ! test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh ! test/sun/tools/jstat/jstatHelp.sh ! test/sun/tools/jstat/jstatLineCounts1.sh ! test/sun/tools/jstat/jstatLineCounts2.sh ! test/sun/tools/jstat/jstatLineCounts3.sh ! test/sun/tools/jstat/jstatLineCounts4.sh ! test/sun/tools/jstat/jstatOptions1.sh ! test/sun/tools/jstat/jstatPrintCompilationOutput1.sh ! test/sun/tools/jstat/jstatSnap1.sh ! test/sun/tools/jstat/jstatSnap2.sh ! test/sun/tools/jstat/jstatTimeStamp1.sh ! test/sun/tools/jstatd/jstatdDefaults.sh ! test/sun/tools/jstatd/jstatdExternalRegistry.sh ! test/sun/tools/jstatd/jstatdPort.sh ! test/sun/tools/jstatd/jstatdServerName.sh Changeset: 61a8c602cace Author: michaelm Date: 2011-09-21 14:51 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/61a8c602cace 7079012: test/java/net/NetworkInterface/NetParamsTest.java fails with SocketException getting mac address Reviewed-by: chegar, alanb ! src/solaris/native/java/net/NetworkInterface.c ! test/ProblemList.txt Changeset: e7c2bf7d9d33 Author: michaelm Date: 2011-09-21 14:54 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/e7c2bf7d9d33 Merge Changeset: daf87c7be6a1 Author: weijun Date: 2011-09-22 12:05 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/daf87c7be6a1 7092627: use agentvm mode instead of samevm in regtests Reviewed-by: alanb, dsamersoff ! test/Makefile ! test/com/sun/jdi/sde/MangleStepTest.java ! test/java/util/logging/ParentLoggersTest.java Changeset: 6b6b6ee2afd9 Author: darcy Date: 2011-09-21 23:22 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/6b6b6ee2afd9 7092404: Add Math.nextDown and Double.isFinite Reviewed-by: mduigou ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/StrictMath.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/sun/misc/FpUtils.java ! test/java/lang/Double/ParseHexFloatingPoint.java ! test/java/lang/Math/CeilAndFloorTests.java ! test/java/lang/Math/CubeRootTests.java ! test/java/lang/Math/Expm1Tests.java ! test/java/lang/Math/HyperbolicTests.java ! test/java/lang/Math/HypotTests.java ! test/java/lang/Math/IeeeRecommendedTests.java ! test/java/lang/Math/Log10Tests.java ! test/java/lang/Math/Log1pTests.java ! test/java/lang/Math/Rint.java ! test/java/util/Formatter/Basic-X.java.template ! test/java/util/Formatter/BasicBigDecimal.java ! test/java/util/Formatter/BasicBigInteger.java ! test/java/util/Formatter/BasicBoolean.java ! test/java/util/Formatter/BasicBooleanObject.java ! test/java/util/Formatter/BasicByte.java ! test/java/util/Formatter/BasicByteObject.java ! test/java/util/Formatter/BasicChar.java ! test/java/util/Formatter/BasicCharObject.java ! test/java/util/Formatter/BasicDateTime.java ! test/java/util/Formatter/BasicDouble.java ! test/java/util/Formatter/BasicDoubleObject.java ! test/java/util/Formatter/BasicFloat.java ! test/java/util/Formatter/BasicFloatObject.java ! test/java/util/Formatter/BasicInt.java ! test/java/util/Formatter/BasicIntObject.java ! test/java/util/Formatter/BasicLong.java ! test/java/util/Formatter/BasicLongObject.java ! test/java/util/Formatter/BasicShort.java ! test/java/util/Formatter/BasicShortObject.java Changeset: 8dab38c07b6b Author: dl Date: 2011-09-23 14:24 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/8dab38c07b6b 7091003: ScheduledExecutorService never executes Runnable with corePoolSize of zero Reviewed-by: dholmes, chegar ! src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java ! src/share/classes/java/util/concurrent/ThreadPoolExecutor.java + test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java Changeset: 651a7afae763 Author: lana Date: 2011-09-23 23:29 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/651a7afae763 Merge Changeset: 2116952e4459 Author: weijun Date: 2011-09-26 17:13 +0800 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/2116952e4459 7094842: test/javax/security/auth/Subject/{Synch.java,Synch2.java,Synch3.java} loop forever in agentvm mode Reviewed-by: alanb ! test/javax/security/auth/Subject/Synch.java ! test/javax/security/auth/Subject/Synch2.java ! test/javax/security/auth/Subject/Synch3.java Changeset: 8876d1dec4d7 Author: chegar Date: 2011-09-26 15:04 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/8876d1dec4d7 7094141: test/sun/misc/JarIndex/metaInfFilenames/Basic.java no longer compiles Reviewed-by: alanb ! test/sun/misc/JarIndex/metaInfFilenames/Basic.java Changeset: 1c825eac6c04 Author: lana Date: 2011-09-26 14:32 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/1c825eac6c04 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java Changeset: f38b39ed9ed0 Author: lana Date: 2011-10-03 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/f38b39ed9ed0 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: 3b59f4bc8046 Author: never Date: 2011-09-07 21:05 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/3b59f4bc8046 7082631: JSR 292: need profiling support in GWTs Summary: add CountingMethodHandle Reviewed-by: twisti, jrose ! src/share/classes/java/lang/invoke/AdapterMethodHandle.java + src/share/classes/java/lang/invoke/CountingMethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandleNatives.java Changeset: 7b9a0c75f5d9 Author: jcoomes Date: 2011-09-30 17:20 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/7b9a0c75f5d9 Merge Changeset: 1c023bcd0c5a Author: jcoomes Date: 2011-10-04 12:39 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/1c023bcd0c5a Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: f1ec21b81421 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/jdk/rev/f1ec21b81421 Added tag jdk8-b08 for changeset 1c023bcd0c5a ! .hgtags From michael.fang at sun.com Mon Oct 17 17:00:08 2011 From: michael.fang at sun.com (michael.fang at sun.com) Date: Tue, 18 Oct 2011 00:00:08 +0000 Subject: hg: jdk8/l10n/langtools: 32 new changesets Message-ID: <20111018000118.5892B47033@hg.openjdk.java.net> Changeset: 4e754e4b0a52 Author: schien Date: 2011-09-15 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/4e754e4b0a52 Added tag jdk8-b05 for changeset 5304c2a17d4b ! .hgtags Changeset: b86277584776 Author: mcimadamore Date: 2011-08-31 16:11 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/b86277584776 7085024: internal error; cannot instantiate Foo Summary: Types.isConvertible does not handle erroneous types correctly Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/7085024/T7085024.java + test/tools/javac/7085024/T7085024.out Changeset: d0257833498e Author: mcimadamore Date: 2011-08-31 16:15 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/d0257833498e 7079713: javac hangs when compiling a class that references a cyclically inherited class Summary: Types.membersClosure needs to handle pathological cases of cyclic inheritance Reviewed-by: jjg, jjh ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/7079713/TestCircularClassfile.java Changeset: f85d980faaf8 Author: jjg Date: 2011-08-31 15:39 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/f85d980faaf8 7074416: Regression: JSR199: javac doesn't unwrap clientcodewrapper objects Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java ! src/share/classes/javax/tools/JavaCompiler.java ! test/tools/javac/TryWithResources/UnusedResourcesTest.java ! test/tools/javac/diags/Example.java ! test/tools/javac/processing/errors/TestSuppression.java Changeset: 04f983e3e825 Author: ksrini Date: 2011-09-01 09:14 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/04f983e3e825 7073631: (javac) javac parser improvements for error position reporting Summary: JavacParser improvements for NetBeans, improved by LangTools. Reviewed-by: mcimadamore, jjg Contributed-by: jan.lahoda at oracle.com ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javac/util/AbstractLog.java ! test/tools/javac/TryWithResources/BadTwr.out ! test/tools/javac/TryWithResources/DuplicateResourceDecl.out ! test/tools/javac/TryWithResources/ResourceInterface.out ! test/tools/javac/TryWithResources/TwrFlow.out ! test/tools/javac/TryWithResources/TwrLint.out ! test/tools/javac/TryWithResources/TwrOnNonResource.out ! test/tools/javac/diags/examples/EmptyCharLiteral.java + test/tools/javac/parser/netbeans/JavacParserTest.java Changeset: a45d78d26450 Author: jjh Date: 2011-09-01 14:35 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/a45d78d26450 7086071: tools/javac/7079713/TestCircularClassfile.java fails on windows Summary: delete file before renaming another file to it Reviewed-by: jjg ! test/tools/javac/7079713/TestCircularClassfile.java Changeset: 02b8381781ab Author: ksrini Date: 2011-09-02 07:54 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/02b8381781ab 7024096: Stack trace has invalid line numbers Reviewed-by: jjg, darcy Contributed-by: bruce.chapman.nz at gmail.com ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/jvm/T7024096.java Changeset: ec27e5befa53 Author: mcimadamore Date: 2011-09-02 17:35 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/ec27e5befa53 7086261: javac doesn't report error as expected, it only reports ClientCodeWrapper$DiagnosticSourceUnwrapper Summary: Missing override for toString() in ClientCodeUnwrapper.DiagnosticSourceUnwrapper Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java + test/tools/javac/api/7086261/T7086261.java Changeset: 1ee9f9a91e9c Author: jjg Date: 2011-09-09 17:19 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/1ee9f9a91e9c 7073508: Regression: NullPointerException at com.sun.tools.javac.code.Lint$AugmentVisitor.augment Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/annotations/T7043371.java + test/tools/javac/annotations/T7073477.java Changeset: 9aca3534ddf4 Author: lana Date: 2011-09-10 21:31 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/9aca3534ddf4 Merge Changeset: edd7d9bd32dd Author: jjg Date: 2011-09-12 11:39 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/edd7d9bd32dd 7068451: Regression: javac compiles fixed sources against previous, not current, version of generated sources Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/file/RegularFileObject.java ! src/share/classes/com/sun/tools/javac/nio/PathFileObject.java ! src/share/classes/com/sun/tools/javac/util/BaseFileManager.java + test/tools/javac/file/T7068451.java Changeset: f1431cace56e Author: jjg Date: 2011-09-12 11:40 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/f1431cace56e Merge Changeset: d2422276f9da Author: lana Date: 2011-09-19 19:41 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/d2422276f9da Merge Changeset: 116980ecec5c Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/116980ecec5c Added tag jdk8-b06 for changeset d2422276f9da ! .hgtags Changeset: 9268bd271c6f Author: katleman Date: 2011-09-29 18:54 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/9268bd271c6f Added tag jdk8-b07 for changeset 116980ecec5c ! .hgtags Changeset: ed338593b0b6 Author: mcimadamore Date: 2011-09-13 14:14 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/ed338593b0b6 7086595: Error message bug: name of initializer is 'null' Summary: Implementation of MethodSymbol.location() should take into account static/instance initializers Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Kinds.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java + test/tools/javac/7086595/T7086595.java + test/tools/javac/7086595/T7086595.out ! test/tools/javac/Diagnostics/6860795/T6860795.out ! test/tools/javac/LocalClasses_2.out ! test/tools/javac/NestedInnerClassNames.out ! test/tools/javac/TryWithResources/BadTwr.out ! test/tools/javac/TryWithResources/DuplicateResourceDecl.out + test/tools/javac/diags/examples/AlreadyDefinedClinit.java + test/tools/javac/diags/examples/KindnameInstanceInit.java + test/tools/javac/diags/examples/KindnameStaticInit.java ! test/tools/javac/generics/6910550/T6910550d.out Changeset: f595d8bc0599 Author: mcimadamore Date: 2011-09-13 14:15 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/f595d8bc0599 7003595: IncompatibleClassChangeError with unreferenced local class with subclass Summary: Compiler omits unreferenced local inner classes from the InnerClasses attribute Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java + test/tools/javac/7003595/T7003595.java + test/tools/javac/7003595/T7003595b.java Changeset: 3a2200681d69 Author: mcimadamore Date: 2011-09-13 14:15 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/3a2200681d69 7086601: Error message bug: cause for method mismatch is 'null' Summary: Inference error during lub() does not set 'cause' for method resolution diagnostic Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/diags/examples/IncompatibleUpperBounds.java + test/tools/javac/generics/inference/7086601/T7086601a.java + test/tools/javac/generics/inference/7086601/T7086601a.out + test/tools/javac/generics/inference/7086601/T7086601b.java Changeset: ca2e2b85f437 Author: mchung Date: 2011-09-13 16:37 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/ca2e2b85f437 7090297: Remove com.sun.tools.javac.Launcher from tools.jar Reviewed-by: jjg - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: 0f3da6af9799 Author: jjg Date: 2011-09-14 12:07 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/0f3da6af9799 7080267: Call to toString() from an ExpressionStatementTree doesn't take in consideration the ";" at the end Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/tree/JCTree.java + test/tools/javac/tree/TestToString.java Changeset: 1807fc3fd33c Author: jjg Date: 2011-09-14 12:14 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/1807fc3fd33c 7090249: IllegalStateException from Trees.getScope when called from JSR 199 Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/api/JavacTrees.java + test/tools/javac/api/TestGetScope.java Changeset: a6e2c1840ea1 Author: jjg Date: 2011-09-14 15:49 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/a6e2c1840ea1 7090700: fix for 7080267 breaks two tests Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/tree/JCTree.java Changeset: 826ae6a2f27d Author: jjg Date: 2011-09-14 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/826ae6a2f27d 7068437: Regression: Filer.getResource(SOURCE_OUTPUT, ...) no longer works in JDK 7 w/o -s Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/processing/JavacFiler.java + test/tools/javac/file/T7068437.java Changeset: c0835c8489b0 Author: mcimadamore Date: 2011-09-16 14:16 +0100 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/c0835c8489b0 7086586: Inference producing null type argument Summary: Inference should fail in 15.12.2.7 when inference variables with 'nulltype' upper bounds are found Reviewed-by: dlsmith ! src/share/classes/com/sun/tools/javac/code/Types.java ! test/tools/javac/Diagnostics/6862608/T6862608a.out ! test/tools/javac/generics/inference/6638712/T6638712a.out + test/tools/javac/generics/inference/7086586/T7086586.java + test/tools/javac/generics/inference/7086586/T7086586.out + test/tools/javac/generics/inference/7086586/T7086586b.java Changeset: dea82aa3ca4f Author: jjg Date: 2011-09-16 16:18 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/dea82aa3ca4f 7091528: javadoc attempts to parse .class files Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/JavadocTool.java + test/tools/javadoc/parser/7091528/T7091528.java + test/tools/javadoc/parser/7091528/p/C1.java + test/tools/javadoc/parser/7091528/p/q/C2.java Changeset: ac964af3b5e7 Author: jjg Date: 2011-09-20 12:08 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/ac964af3b5e7 7030473: Remove dead field JCCompilationUnit.flags Reviewed-by: dlsmith ! src/share/classes/com/sun/tools/javac/tree/JCTree.java Changeset: b0d5f00e69f7 Author: jjg Date: 2011-09-21 21:56 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/b0d5f00e69f7 7092965: javac should not close processorClassLoader before end of compilation Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/tools/javac/diags/examples.not-yet.txt + test/tools/javac/processing/loader/testClose/TestClose.java + test/tools/javac/processing/loader/testClose/TestClose2.java Changeset: 497571d34112 Author: jjg Date: 2011-09-22 09:24 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/497571d34112 7075721: javac should have public enum for exit codes Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/Main.java ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! test/tools/javac/diags/ArgTypeCompilerFactory.java ! test/tools/javac/diags/Example.java ! test/tools/javac/lib/CompileFail.java ! test/tools/javac/util/context/T7021650.java Changeset: 0c6f79fc8441 Author: lana Date: 2011-09-23 23:30 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/0c6f79fc8441 Merge Changeset: 28573d605b01 Author: lana Date: 2011-09-26 14:33 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/28573d605b01 Merge - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: e8acc2d6c32f Author: lana Date: 2011-10-03 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/e8acc2d6c32f Merge - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: b7a7e47c8d3d Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/l10n/langtools/rev/b7a7e47c8d3d Added tag jdk8-b08 for changeset e8acc2d6c32f ! .hgtags