From Vladimir.Kozlov at Sun.COM Wed Apr 2 14:50:23 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Wed, 02 Apr 2008 14:50:23 -0700 Subject: Request for reviews (S): 6681577: PIT: some VM tests fails with -XX:+AggressiveOpts in 6u5p b01 Message-ID: <47F3FF9F.4060109@sun.com> http://webrev.invokedynamic.info/kvn/6681577/index.html Fixed 6681577: PIT: some VM tests fails with -XX:+AggressiveOpts in 6u5p b01 Problem: C2 spends > 60% in escape analysis code during test nsk/regression/b4675027. Most of the time it spends in ConnectionGraph::remove_deferred(). Solution: Optimize the method ConnectionGraph::remove_derefered(). EA performance improved by x5. Reviewed by: Fix verified (y/n): y, failed test cases. Other testing: JPRT From Thomas.Rodriguez at Sun.COM Wed Apr 2 15:25:40 2008 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Wed, 02 Apr 2008 15:25:40 -0700 Subject: XS review for 6619271 Message-ID: <47F407E4.8080709@sun.com> http://webrev.invokedynamic.info/never/6619271/ From Thomas.Rodriguez at Sun.COM Thu Apr 3 13:41:49 2008 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Thu, 03 Apr 2008 13:41:49 -0700 Subject: XS review for 6646020 Message-ID: <47F5410D.5070805@sun.com> http://webrev.invokedynamic.info/never/6646020/ From regina.anger at hotmail.com Sun Apr 6 05:03:14 2008 From: regina.anger at hotmail.com (Regina Anger) Date: Sun, 6 Apr 2008 14:03:14 +0200 Subject: What does AggressiveOpts do with my timings? In-Reply-To: <47F0DF13.8050805@sun.com> References: <47EBF361.4060605@sun.com> <47F0DF13.8050805@sun.com> Message-ID: > :-) Too many Steve's. The Steve that answered you was Steve Bohne and > his blog is at http://blogs.sun.com/sbohne/ and afaik there isn't any > airplane and compiler stuff there though it is still interesting. My > blog http://blogs.sun.com/fatcatair does however does have compiler and > airplane stuff although it has been idle for a few months. Every Monday > I swear I'll add something in the coming week only to see Friday roll > around and I've never gotten to it. I don't know how the people that > blog every day do it. Definitivly too many Steve's ;) I have to admit I did not know a lot about Steve Bone's Blog however it looks cool :) I know your blog quite well because I am really interested about: - Tired compilers (hoping that it will make it into JDK7) - Scalar replacement (and I am still hoping that this will remove some of the memory throughput preassure 64-bit brought) - EA and stack allocation - Code cache Well and thats what you blog is about ;) Thanks for blogging about your cool stuff and good luck with hotspot development. Regi _________________________________________________________________ Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us From Chuck.Rasbold at Sun.COM Mon Apr 7 14:41:34 2008 From: Chuck.Rasbold at Sun.COM (Chuck Rasbold) Date: Mon, 07 Apr 2008 14:41:34 -0700 Subject: Review request (XS): 6663908 NegativeArraySizeException is not thrown Message-ID: <47FA950E.1030006@Sun.COM> http://webrev.invokedynamic.info/rasbold/6663908/ Fixed 6663908: NegativeArraySizeException is not thrown A compiled method misses throwing a NegativeArraySizeException when the lowest dimension has negative size, all of the higher dimension sizes are constants, and at least one of those higher dimension sizes is zero. Don't optimize a multidimensional array allocation when a dimension size is zero. Reviewed by: Fix verified (y/n): y From Chuck.Rasbold at Sun.COM Tue Apr 8 13:39:13 2008 From: Chuck.Rasbold at Sun.COM (Chuck Rasbold) Date: Tue, 08 Apr 2008 13:39:13 -0700 Subject: Review request (XS): 6684385 Loop unswitching crashes without LoopNode Message-ID: <47FBD7F1.5000904@Sun.COM> http://webrev.invokedynamic.info/rasbold/6684385/ Fixed 6684385: Loop unswitching crashes without LoopNode Due to the sometimes unpredictable handling of irreducible loops, a non-irreducible loop was found on the second call to build_loop_tree(), and therefore was not beautified. Without a LoopNode at the head of the loop, policy_unswitching() crashes. Fix policy_unswitching() to return false for any loop which does not have a LoopNode for a head. Do the same for partial_peel(). Reviewed by: Fix verified (y/n): y From Vladimir.Kozlov at Sun.COM Wed Apr 9 17:27:46 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Wed, 09 Apr 2008 17:27:46 -0700 Subject: Request for reviews (M): 6684714: Optimize EA Connection Graph build performance Message-ID: <47FD5F02.6030301@sun.com> http://webrev.invokedynamic.info/kvn/6684714/index.html Fixed 6684714: Optimize EA Connection Graph build performance Problem: EA spends most time in Connection Graph construction which is done during each method compilation since only after CG built it can look for scalar replaceable candidates and create unique types for fields instances or skip it if there are no such candidates. Especially it is critical for [fast]debug VM which spends about 30% of the compilation time in Connection Graph construction. Solution: 1. Build Connection Graph and execute Escape Analysis only when Ideal graph has allocations. 2. Replace growable arrays and vector sets with arena arrays where possible (their size is fixed since Connection Graph construction doesn't add Ideal nodes). 3. Optimize ConnectionGraph::remove_derefered() and PointsTo() most expensive methods. Connection Graph build performance improved by x3 in debug VM. Reviewed by: Fix verified (y/n): y Other testing: JPRT, CTW, NSK From Steve.Goldman at Sun.COM Thu Apr 10 13:37:06 2008 From: Steve.Goldman at Sun.COM (steve goldman) Date: Thu, 10 Apr 2008 16:37:06 -0400 Subject: Please review (XS) Message-ID: <47FE7A72.7010707@sun.com> This fixes: 6644928 - Internal Error (src/share/vm/code/relocInfo.hpp:1089) In the work to merge the 32/64bit assembler the assember card mark code was converted to use ExternalAddress to describe the base. In some cases the mapping of the cardtable and the heap base produce a base of zero. This causes an assert in the reloc code. Testing: runThese (32bit/64bit). I was unable to reproduce the failure despite many tries even on the machines that saw the failures running the same tests so I just forced the paths for handling zero in the debugger. http://webrev.invokedynamic.info/sgoldman/6644928/ -- Steve From Vladimir.Kozlov at Sun.COM Fri Apr 11 16:17:57 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Fri, 11 Apr 2008 16:17:57 -0700 Subject: Request for reviews (S): 6686791: Side effect in NumberFormat tests with -server -Xcomp Message-ID: <47FFF1A5.5060506@sun.com> http://webrev.invokedynamic.info/kvn/6686791/index.html Fixed 6686791: Side effect in NumberFormat tests with -server -Xcomp Problem: New optimization in CmpPNode::sub() (6667580) removed the valid compare instruction because of false positive answer from detect_dominating_control() since one of CmpP's inputs (LoadP) has a control edge above the second input (Allocate). Solution: Check control edges of all 'dom' node's inputs instead of checking only the control edge. Remove the fixed (20) steps limit, use NodeList to check visited Region nodes instead. New code gives 4 times more correct positive answers based on jbb2005 and jvm98 runs. It doesn't affect compilation time noticeably. Benchmarks do not show regression. Reviewed by: Fix verified (y/n): y Other testing: JPRT, refworkload From Steve.Goldman at Sun.COM Tue Apr 15 05:52:58 2008 From: Steve.Goldman at Sun.COM (steve goldman) Date: Tue, 15 Apr 2008 08:52:58 -0400 Subject: Please review (S) sparc 64bit c++ interpreter fixes Message-ID: <4804A52A.2090706@sun.com> 6688137: c++ interpreter fails on 64bit sparc These fixes were contributed by Volker. I tested them on 32/64bit by running runThese. (The bytecodeInterpreter.cpp changes actually fix builds with gcc and not just 64bit). http://webrev.invokedynamic.info/sgoldman/6688137/ -- Steve From gbenson at redhat.com Tue Apr 15 09:15:43 2008 From: gbenson at redhat.com (Gary Benson) Date: Tue, 15 Apr 2008 17:15:43 +0100 Subject: Some code interpreted with -Xcomp Message-ID: <20080415161543.GA3693@redhat.com> Hi all, I'm writing a new compiler for HotSpot. I've been using -Xcomp to stress it, but I'm even so I'm seeing code being interpreted, some 378,000 instructions or so that happen before CompileBroker::compilation_init() runs. Is this normal or did I mess something up? Cheers, Gary -- http://gbenson.net/ From Steve.Goldman at Sun.COM Tue Apr 15 09:30:29 2008 From: Steve.Goldman at Sun.COM (steve goldman) Date: Tue, 15 Apr 2008 12:30:29 -0400 Subject: Some code interpreted with -Xcomp In-Reply-To: <20080415161543.GA3693@redhat.com> References: <20080415161543.GA3693@redhat.com> Message-ID: <4804D825.6070007@sun.com> Gary Benson wrote: > Hi all, > > I'm writing a new compiler for HotSpot. I've been using -Xcomp > to stress it, but I'm even so I'm seeing code being interpreted, > some 378,000 instructions or so that happen before > CompileBroker::compilation_init() runs. Is this normal or did > I mess something up? > That's normal, the compilers are delayed. In addition with c2 if you run -Xcomp you'll see lots of uncommon traps and interpretation even after the compilers come up. Not that it probably applies to you but for c2 setting a low compile threshold is more stressful than Xcomp unless you are trying to stress deoptimization. -- Steve From volker.simonis at gmail.com Tue Apr 15 10:08:50 2008 From: volker.simonis at gmail.com (Volker Simonis) Date: Tue, 15 Apr 2008 19:08:50 +0200 Subject: Some code interpreted with -Xcomp In-Reply-To: <20080415161543.GA3693@redhat.com> References: <20080415161543.GA3693@redhat.com> Message-ID: Have you tried '-Xcomp -Xbatch'? Regards, Volker On 4/15/08, Gary Benson wrote: > Hi all, > > I'm writing a new compiler for HotSpot. I've been using -Xcomp > to stress it, but I'm even so I'm seeing code being interpreted, > some 378,000 instructions or so that happen before > CompileBroker::compilation_init() runs. Is this normal or did > I mess something up? > > Cheers, > Gary > > > -- > http://gbenson.net/ > From gbenson at redhat.com Tue Apr 15 11:38:03 2008 From: gbenson at redhat.com (Gary Benson) Date: Tue, 15 Apr 2008 19:38:03 +0100 Subject: Some code interpreted with -Xcomp In-Reply-To: References: <20080415161543.GA3693@redhat.com> Message-ID: <20080415183803.GB1680@redhat.com> I tried it just then, but it did the same 378k instructions as before. Should it be different? Cheers, Gary Volker Simonis wrote: > Have you tried '-Xcomp -Xbatch'? > > Regards, > Volker > > On 4/15/08, Gary Benson wrote: > > Hi all, > > > > I'm writing a new compiler for HotSpot. I've been using -Xcomp > > to stress it, but I'm even so I'm seeing code being interpreted, > > some 378,000 instructions or so that happen before > > CompileBroker::compilation_init() runs. Is this normal or did > > I mess something up? > > > > Cheers, > > Gary > > > > -- > > http://gbenson.net/ -- http://gbenson.net/ From gbenson at redhat.com Tue Apr 15 11:39:58 2008 From: gbenson at redhat.com (Gary Benson) Date: Tue, 15 Apr 2008 19:39:58 +0100 Subject: Some code interpreted with -Xcomp In-Reply-To: <4804D825.6070007@sun.com> References: <20080415161543.GA3693@redhat.com> <4804D825.6070007@sun.com> Message-ID: <20080415183958.GC1680@redhat.com> Steve Goldman wrote: > Gary Benson wrote: > > I'm writing a new compiler for HotSpot. I've been using -Xcomp > > to stress it, but I'm even so I'm seeing code being interpreted, > > some 378,000 instructions or so that happen before > > CompileBroker::compilation_init() runs. Is this normal or did > > I mess something up? > > That's normal, the compilers are delayed. In addition with c2 if you > run -Xcomp you'll see lots of uncommon traps and interpretation even > after the compilers come up. Not that it probably applies to you but > for c2 setting a low compile threshold is more stressful than Xcomp > unless you are trying to stress deoptimization. Thanks for that. I was worried I was doing something odd :) Cheers, Gary -- http://gbenson.net/ From Chuck.Rasbold at Sun.COM Wed Apr 16 15:05:17 2008 From: Chuck.Rasbold at Sun.COM (Chuck Rasbold) Date: Wed, 16 Apr 2008 15:05:17 -0700 Subject: Review request (S): 6646109 array subscript expressions become top() with -d64 Message-ID: <4806781D.7000309@Sun.COM> http://webrev.invokedynamic.info/rasbold/6646019/ Fixed 6646109: array subscript expressions become top() with -d64 Several "Tester" programs fail (in different ways) with -d64 when a negative array length or negative subscript is used. C2 proves that the subscript expression does not meet the array bounds and a ConvI2LNode construction returns top. The top node can cause problems downstream with a variety of assertion failures or crashes. There are two parts to this fix: By itself, the change in graphKit.cpp fixes the problem in all observed cases. If the ConvI2LNode construction returns top(), we simply back off on the type of ConvI2LNode to TypeLong::INT. The fix in parse2.cpp preemptively handles the cases when the array bound is negative. The CmpU bounds check trick doesn't work if the array bound is negative. However, if the parser observes the bound is negative, then it can proceed as if it is 0, and the CmpU mechanism causes the path to disappear into an uncommon_trap. Reviewed by: Fix verified (y/n): y From John.Rose at Sun.COM Wed Apr 16 15:55:21 2008 From: John.Rose at Sun.COM (John Rose) Date: Wed, 16 Apr 2008 15:55:21 -0700 Subject: Review request (S): 6646109 array subscript expressions become top() with -d64 In-Reply-To: <4806781D.7000309@Sun.COM> References: <4806781D.7000309@Sun.COM> Message-ID: Reviewed. But I have one reservation. (CC-ing the list because it touches on an interesting property of our system.) On Apr 16, 2008, at 3:05 PM, Chuck Rasbold wrote: > http://webrev.invokedynamic.info/rasbold/6646019/ > > Several "Tester" programs fail (in different ways) with -d64 when a > negative array length or negative subscript is used. C2 proves that > the subscript expression does not meet the array bounds and a > ConvI2LNode construction returns top. But top is the correct answer here. It should be OK, since the control edges that enable the computation will be certainly be topping out also. While the dead code folds up, the compiler should not crash, regardless of which order the nodes top out. Does this fix mask any bugs of that sort? > There are two parts to this fix: > > By itself, the change in graphKit.cpp fixes the problem in all > observed cases. If the ConvI2LNode construction returns top(), we > simply back off on the type of ConvI2LNode to TypeLong::INT. This works because the fold-up happens immediately, and the code can done a special-case backoff. But the same problems could re-appear if something slightly delays the fold-up until a later GVN step, so this fixup code misses its cue. Our system works best when it is insensitive to such ordering of optimization steps (Church Rosser confluence property). So, is there a crash downstream (hopefully just in the parser) that needs to be fixed instead? > The fix in parse2.cpp preemptively handles the cases when the array > bound is negative. The CmpU bounds check trick doesn't work if the > array bound is negative. However, if the parser observes the bound is > negative, then it can proceed as if it is 0, and the CmpU mechanism > causes the path to disappear into an uncommon_trap. That's a reasonable tweak. It is simple and saves the compiler some useless thrashing. -- John From Vladimir.Kozlov at Sun.COM Thu Apr 17 14:08:54 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Thu, 17 Apr 2008 14:08:54 -0700 Subject: Request for reviews (M): 6689060: Escape Analysis does not work with Compressed Oops Message-ID: <4807BC66.3060802@sun.com> It is initial review for the bug fix. I am still testing. http://webrev.invokedynamic.info/kvn/6689060/index.html Fixed 6689060: Escape Analysis does not work with Compressed Oops Problem: 64-bits VM crashes with -XX:+AggresiveOpts (EA + CO). Solution: Added missing lines in escape.cpp. Scalar Replacement: Cast oop fields type to narrow before searching values since values has narrow type. Used DecodeN to get wide oops for debug info (I will optimize it later) and undo cast to narrow. Need not delayed transformation to be able scalar replace objects. Added not_null encodeP decodeN instructions into .ad files. Fixed verify_oop stabs included debug messages to know where a problem happened. VerifyOops still failing with CO (even without EA and this changes). Reviewed by: Fix verified (y/n): y Other testing: JPRT with +EA, benchmarks, CTW, nsk Thanks, Vladimir From chuck.rasbold at sun.com Fri Apr 18 10:43:40 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Fri, 18 Apr 2008 17:43:40 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 10 new changesets Message-ID: <20080418174401.D63B027F9E@hg.openjdk.java.net> Changeset: 7747916a0945 Author: ysr Date: 2008-04-08 12:10 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/7747916a0945 6685160: fix cscope build with hg Summary: Use hg's fstatus instead of teamware's nametable to trigger cscope database rebuild Reviewed-by: jcoomes, kamg ! build/linux/makefiles/cscope.make ! build/solaris/makefiles/cscope.make Changeset: 7c5dac90daef Author: apetrusenko Date: 2008-04-14 08:29 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/7c5dac90daef Merge Changeset: a294fd0c4b38 Author: kamg Date: 2008-04-09 14:22 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/a294fd0c4b38 6583644: Move all managed/SCCS files out of 'build' into 'make' directory Summary: Moved makefiles out of build and build/closed into make/ Reviewed-by: kvn, ohair ! .hgignore - build/hotspot_distro - build/linux/Makefile - build/linux/Queens.class - build/linux/README - build/linux/adlc_updater - build/linux/build.sh - build/linux/makefiles/adjust-mflags.sh - build/linux/makefiles/adlc.make - build/linux/makefiles/amd64.make - build/linux/makefiles/buildtree.make - build/linux/makefiles/compiler1.make - build/linux/makefiles/compiler2.make - build/linux/makefiles/core.make - build/linux/makefiles/cscope.make - build/linux/makefiles/debug.make - build/linux/makefiles/defs.make - build/linux/makefiles/dtrace.make - build/linux/makefiles/fastdebug.make - build/linux/makefiles/gcc.make - build/linux/makefiles/hp.make - build/linux/makefiles/hp1.make - build/linux/makefiles/i486.make - build/linux/makefiles/jsig.make - build/linux/makefiles/jvmg.make - build/linux/makefiles/jvmti.make - build/linux/makefiles/launcher.make - build/linux/makefiles/makedeps.make - build/linux/makefiles/mapfile-vers-debug - build/linux/makefiles/mapfile-vers-jsig - build/linux/makefiles/mapfile-vers-product - build/linux/makefiles/optimized.make - build/linux/makefiles/product.make - build/linux/makefiles/profiled.make - build/linux/makefiles/rules.make - build/linux/makefiles/sa.make - build/linux/makefiles/saproc.make - build/linux/makefiles/sparcWorks.make - build/linux/makefiles/tiered.make - build/linux/makefiles/top.make - build/linux/makefiles/vm.make - build/linux/platform_amd64 - build/linux/platform_amd64.suncc - build/linux/platform_i486 - build/linux/platform_i486.suncc - build/linux/platform_sparc - build/sa.files - build/solaris/Makefile - build/solaris/Queens.class - build/solaris/adlc_updater - build/solaris/build.sh - build/solaris/makefiles/adjust-mflags.sh - build/solaris/makefiles/adlc.make - build/solaris/makefiles/amd64.make - build/solaris/makefiles/buildtree.make - build/solaris/makefiles/compiler1.make - build/solaris/makefiles/compiler2.make - build/solaris/makefiles/core.make - build/solaris/makefiles/cscope.make - build/solaris/makefiles/debug.make - build/solaris/makefiles/defs.make - build/solaris/makefiles/dtrace.make - build/solaris/makefiles/fastdebug.make - build/solaris/makefiles/gcc.make - build/solaris/makefiles/hp.make - build/solaris/makefiles/hp1.make - build/solaris/makefiles/i486.make - build/solaris/makefiles/jsig.make - build/solaris/makefiles/jvmg.make - build/solaris/makefiles/jvmti.make - build/solaris/makefiles/kernel.make - build/solaris/makefiles/launcher.make - build/solaris/makefiles/makedeps.make - build/solaris/makefiles/mapfile-vers - build/solaris/makefiles/mapfile-vers-COMPILER1 - build/solaris/makefiles/mapfile-vers-COMPILER2 - build/solaris/makefiles/mapfile-vers-CORE - build/solaris/makefiles/mapfile-vers-TIERED - build/solaris/makefiles/mapfile-vers-debug - build/solaris/makefiles/mapfile-vers-jsig - build/solaris/makefiles/mapfile-vers-jvm_db - build/solaris/makefiles/mapfile-vers-jvm_dtrace - build/solaris/makefiles/mapfile-vers-nonproduct - build/solaris/makefiles/optimized.make - build/solaris/makefiles/product.make - build/solaris/makefiles/profiled.make - build/solaris/makefiles/reorder_COMPILER1_i486 - build/solaris/makefiles/reorder_COMPILER1_sparc - build/solaris/makefiles/reorder_COMPILER1_sparcv9 - build/solaris/makefiles/reorder_COMPILER2_amd64 - build/solaris/makefiles/reorder_COMPILER2_i486 - build/solaris/makefiles/reorder_COMPILER2_sparc - build/solaris/makefiles/reorder_COMPILER2_sparcv9 - build/solaris/makefiles/reorder_CORE_amd64 - build/solaris/makefiles/reorder_CORE_i486 - build/solaris/makefiles/reorder_CORE_sparc - build/solaris/makefiles/reorder_CORE_sparcv9 - build/solaris/makefiles/reorder_TIERED_amd64 - build/solaris/makefiles/reorder_TIERED_i486 - build/solaris/makefiles/reorder_TIERED_sparc - build/solaris/makefiles/rules.make - build/solaris/makefiles/sa.make - build/solaris/makefiles/saproc.make - build/solaris/makefiles/sparc.make - build/solaris/makefiles/sparcWorks.make - build/solaris/makefiles/sparcv9.make - build/solaris/makefiles/tiered.make - build/solaris/makefiles/top.make - build/solaris/makefiles/vm.make - build/solaris/platform_amd64 - build/solaris/platform_amd64.gcc - build/solaris/platform_i486 - build/solaris/platform_i486.gcc - build/solaris/platform_sparc - build/solaris/platform_sparc.gcc - build/solaris/platform_sparcv9 - build/solaris/platform_sparcv9.gcc - build/solaris/reorder.sh - build/test/Queens.java - build/windows/README - build/windows/build.bat - build/windows/build.make - build/windows/build_vm_def.sh - build/windows/create.bat - build/windows/cross_build.bat - build/windows/get_msc_ver.sh - build/windows/jvmexp.lcf - build/windows/jvmexp_g.lcf - build/windows/makefiles/adlc.make - build/windows/makefiles/compile.make - build/windows/makefiles/debug.make - build/windows/makefiles/defs.make - build/windows/makefiles/fastdebug.make - build/windows/makefiles/generated.make - build/windows/makefiles/jvmti.make - build/windows/makefiles/makedeps.make - build/windows/makefiles/product.make - build/windows/makefiles/rules.make - build/windows/makefiles/sa.make - build/windows/makefiles/sanity.make - build/windows/makefiles/shared.make - build/windows/makefiles/top.make - build/windows/makefiles/vm.make - build/windows/platform_amd64 - build/windows/platform_i486 - build/windows/projectfiles/common/Makefile - build/windows/projectfiles/compiler1/Makefile - build/windows/projectfiles/compiler1/vm.def - build/windows/projectfiles/compiler1/vm.dsw - build/windows/projectfiles/compiler2/ADLCompiler.dsp - build/windows/projectfiles/compiler2/ADLCompiler.dsw - build/windows/projectfiles/compiler2/Makefile - build/windows/projectfiles/compiler2/vm.def - build/windows/projectfiles/compiler2/vm.dsw - build/windows/projectfiles/core/Makefile - build/windows/projectfiles/core/vm.def - build/windows/projectfiles/core/vm.dsw - build/windows/projectfiles/kernel/Makefile - build/windows/projectfiles/kernel/vm.def - build/windows/projectfiles/kernel/vm.dsw - build/windows/projectfiles/tiered/ADLCompiler.dsp - build/windows/projectfiles/tiered/ADLCompiler.dsw - build/windows/projectfiles/tiered/Makefile - build/windows/projectfiles/tiered/vm.def - build/windows/projectfiles/tiered/vm.dsw ! make/defs.make + make/hotspot_distro ! make/jprt.properties + make/linux/Makefile + make/linux/Queens.class + make/linux/README + make/linux/adlc_updater + make/linux/build.sh + make/linux/makefiles/adjust-mflags.sh + make/linux/makefiles/adlc.make + make/linux/makefiles/amd64.make + make/linux/makefiles/buildtree.make + make/linux/makefiles/compiler1.make + make/linux/makefiles/compiler2.make + make/linux/makefiles/core.make + make/linux/makefiles/cscope.make + make/linux/makefiles/debug.make + make/linux/makefiles/defs.make + make/linux/makefiles/dtrace.make + make/linux/makefiles/fastdebug.make + make/linux/makefiles/gcc.make + make/linux/makefiles/hp.make + make/linux/makefiles/hp1.make + make/linux/makefiles/i486.make + make/linux/makefiles/ia64.make + make/linux/makefiles/jsig.make + make/linux/makefiles/jvmg.make + make/linux/makefiles/jvmti.make + make/linux/makefiles/launcher.make + make/linux/makefiles/makedeps.make + make/linux/makefiles/mapfile-vers-debug + make/linux/makefiles/mapfile-vers-jsig + make/linux/makefiles/mapfile-vers-product + make/linux/makefiles/optimized.make + make/linux/makefiles/product.make + make/linux/makefiles/profiled.make + make/linux/makefiles/rules.make + make/linux/makefiles/sa.make + make/linux/makefiles/saproc.make + make/linux/makefiles/sparc.make + make/linux/makefiles/sparcWorks.make + make/linux/makefiles/sparcv9.make + make/linux/makefiles/tiered.make + make/linux/makefiles/top.make + make/linux/makefiles/vm.make + make/linux/platform_amd64 + make/linux/platform_amd64.suncc + make/linux/platform_i486 + make/linux/platform_i486.suncc + make/linux/platform_ia64 + make/linux/platform_sparc + make/openjdk_distro + make/sa.files + make/solaris/Makefile + make/solaris/Queens.class + make/solaris/adlc_updater + make/solaris/build.sh + make/solaris/makefiles/adjust-mflags.sh + make/solaris/makefiles/adlc.make + make/solaris/makefiles/amd64.make + make/solaris/makefiles/buildtree.make + make/solaris/makefiles/compiler1.make + make/solaris/makefiles/compiler2.make + make/solaris/makefiles/core.make + make/solaris/makefiles/cscope.make + make/solaris/makefiles/debug.make + make/solaris/makefiles/defs.make + make/solaris/makefiles/dtrace.make + make/solaris/makefiles/fastdebug.make + make/solaris/makefiles/gcc.make + make/solaris/makefiles/hp.make + make/solaris/makefiles/hp1.make + make/solaris/makefiles/i486.make + make/solaris/makefiles/jsig.make + make/solaris/makefiles/jvmg.make + make/solaris/makefiles/jvmti.make + make/solaris/makefiles/kernel.make + make/solaris/makefiles/launcher.make + make/solaris/makefiles/makedeps.make + make/solaris/makefiles/mapfile-vers + make/solaris/makefiles/mapfile-vers-COMPILER1 + make/solaris/makefiles/mapfile-vers-COMPILER2 + make/solaris/makefiles/mapfile-vers-CORE + make/solaris/makefiles/mapfile-vers-TIERED + make/solaris/makefiles/mapfile-vers-debug + make/solaris/makefiles/mapfile-vers-jsig + make/solaris/makefiles/mapfile-vers-jvm_db + make/solaris/makefiles/mapfile-vers-jvm_dtrace + make/solaris/makefiles/mapfile-vers-nonproduct + make/solaris/makefiles/optimized.make + make/solaris/makefiles/product.make + make/solaris/makefiles/profiled.make + make/solaris/makefiles/reorder_COMPILER1_i486 + make/solaris/makefiles/reorder_COMPILER1_sparc + make/solaris/makefiles/reorder_COMPILER1_sparcv9 + make/solaris/makefiles/reorder_COMPILER2_amd64 + make/solaris/makefiles/reorder_COMPILER2_i486 + make/solaris/makefiles/reorder_COMPILER2_sparc + make/solaris/makefiles/reorder_COMPILER2_sparcv9 + make/solaris/makefiles/reorder_CORE_amd64 + make/solaris/makefiles/reorder_CORE_i486 + make/solaris/makefiles/reorder_CORE_sparc + make/solaris/makefiles/reorder_CORE_sparcv9 + make/solaris/makefiles/reorder_TIERED_amd64 + make/solaris/makefiles/reorder_TIERED_i486 + make/solaris/makefiles/reorder_TIERED_sparc + make/solaris/makefiles/rules.make + make/solaris/makefiles/sa.make + make/solaris/makefiles/saproc.make + make/solaris/makefiles/sparc.make + make/solaris/makefiles/sparcWorks.make + make/solaris/makefiles/sparcv9.make + make/solaris/makefiles/tiered.make + make/solaris/makefiles/top.make + make/solaris/makefiles/vm.make + make/solaris/platform_amd64 + make/solaris/platform_amd64.gcc + make/solaris/platform_i486 + make/solaris/platform_i486.gcc + make/solaris/platform_sparc + make/solaris/platform_sparc.gcc + make/solaris/platform_sparcv9 + make/solaris/platform_sparcv9.gcc + make/solaris/reorder.sh + make/test/Queens.java + make/windows/README + make/windows/build.bat + make/windows/build.make + make/windows/build_vm_def.sh + make/windows/create.bat + make/windows/cross_build.bat + make/windows/get_msc_ver.sh + make/windows/jvmexp.lcf + make/windows/jvmexp_g.lcf + make/windows/makefiles/adlc.make + make/windows/makefiles/compile.make + make/windows/makefiles/debug.make + make/windows/makefiles/defs.make + make/windows/makefiles/fastdebug.make + make/windows/makefiles/generated.make + make/windows/makefiles/jvmti.make + make/windows/makefiles/makedeps.make + make/windows/makefiles/product.make + make/windows/makefiles/rules.make + make/windows/makefiles/sa.make + make/windows/makefiles/sanity.make + make/windows/makefiles/shared.make + make/windows/makefiles/top.make + make/windows/makefiles/vm.make + make/windows/platform_amd64 + make/windows/platform_i486 + make/windows/platform_ia64 + make/windows/projectfiles/common/Makefile + make/windows/projectfiles/compiler1/Makefile + make/windows/projectfiles/compiler1/vm.def + make/windows/projectfiles/compiler1/vm.dsw + make/windows/projectfiles/compiler2/ADLCompiler.dsp + make/windows/projectfiles/compiler2/ADLCompiler.dsw + make/windows/projectfiles/compiler2/Makefile + make/windows/projectfiles/compiler2/vm.def + make/windows/projectfiles/compiler2/vm.dsw + make/windows/projectfiles/core/Makefile + make/windows/projectfiles/core/vm.def + make/windows/projectfiles/core/vm.dsw + make/windows/projectfiles/kernel/Makefile + make/windows/projectfiles/kernel/vm.def + make/windows/projectfiles/kernel/vm.dsw + make/windows/projectfiles/tiered/ADLCompiler.dsp + make/windows/projectfiles/tiered/ADLCompiler.dsw + make/windows/projectfiles/tiered/Makefile + make/windows/projectfiles/tiered/vm.def + make/windows/projectfiles/tiered/vm.dsw Changeset: ebec5b9731e2 Author: kamg Date: 2008-04-10 12:21 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ebec5b9731e2 6615981: JVM class file parser incorrectly rejects class files with version < 45.2 Summary: A check on Code length did not take into account the old sizes of the max_stack, max_locals, and code_length. Reviewed-by: phh, sbohne ! src/share/vm/classfile/classFileParser.cpp Changeset: c6ff24ceec1c Author: sbohne Date: 2008-04-10 15:49 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/c6ff24ceec1c 6686407: Fix for 6666698 broke -XX:BiasedLockingStartupDelay=0 Summary: Stack allocated VM_EnableBiasedLocking op must be marked as such Reviewed-by: xlu, acorn, never, dholmes ! src/share/vm/runtime/biasedLocking.cpp Changeset: a49a647afe9a Author: kamg Date: 2008-04-11 09:56 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/a49a647afe9a Merge ! .hgignore ! make/linux/makefiles/vm.make ! make/linux/platform_amd64 ! make/linux/platform_i486 ! make/linux/platform_sparc ! make/solaris/makefiles/vm.make ! make/solaris/platform_amd64 ! make/solaris/platform_amd64.gcc ! make/solaris/platform_i486 ! make/solaris/platform_i486.gcc ! make/solaris/platform_sparc ! make/solaris/platform_sparc.gcc ! make/solaris/platform_sparcv9 ! make/solaris/platform_sparcv9.gcc ! make/windows/makefiles/vm.make ! make/windows/platform_amd64 ! make/windows/platform_i486 - src/cpu/sparc/vm/disassembler_sparc.cpp - src/cpu/x86/vm/disassembler_x86.cpp - src/share/vm/compiler/disassemblerEnv.hpp Changeset: ba764ed4b6f2 Author: coleenp Date: 2008-04-13 17:43 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/HSDB.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.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/dummy/DummyAddress.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.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/windbg/WindbgAddress.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java ! agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Array.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java + agent/src/share/classes/sun/jvm/hotspot/oops/NarrowOopField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/types/Field.java + agent/src/share/classes/sun/jvm/hotspot/types/NarrowOopField.java ! agent/src/share/classes/sun/jvm/hotspot/types/Type.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java + agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicNarrowOopField.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java ! make/Makefile ! make/solaris/makefiles/sparcWorks.make ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/copy_sparc.hpp ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/register_definitions_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/sparc/vm/vtableStubs_sparc.cpp ! src/cpu/x86/vm/assembler_x86_64.cpp ! src/cpu/x86/vm/assembler_x86_64.hpp ! src/cpu/x86/vm/c1_MacroAssembler_x86.cpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interpreter_x86_64.cpp ! src/cpu/x86/vm/register_definitions_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/cpu/x86/vm/vtableStubs_x86_64.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/jhelper.d ! src/os/solaris/dtrace/libjvm_db.c ! src/os/windows/vm/os_windows.cpp ! src/os_cpu/solaris_sparc/vm/solaris_sparc.s ! src/share/vm/adlc/archDesc.cpp ! src/share/vm/adlc/forms.cpp ! src/share/vm/adlc/forms.hpp ! src/share/vm/adlc/formssel.cpp ! src/share/vm/adlc/output_c.cpp ! src/share/vm/adlc/output_h.cpp ! src/share/vm/asm/codeBuffer.cpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/ci/ciInstanceKlass.hpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/compiler/oopMap.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/includeDB_gc_parNew ! src/share/vm/gc_implementation/includeDB_gc_parallelScavenge ! src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp ! src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.hpp ! src/share/vm/gc_implementation/parNew/parOopClosures.hpp ! src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/gc_implementation/shared/markSweep.hpp ! src/share/vm/gc_implementation/shared/markSweep.inline.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/includeDB_core ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/barrierSet.inline.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/cardTableModRefBS.hpp ! src/share/vm/memory/cardTableRS.cpp ! src/share/vm/memory/cardTableRS.hpp ! src/share/vm/memory/compactingPermGenGen.cpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/defNewGeneration.hpp ! src/share/vm/memory/defNewGeneration.inline.hpp ! src/share/vm/memory/dump.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/genCollectedHeap.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/memory/genOopClosures.inline.hpp ! src/share/vm/memory/genRemSet.hpp ! src/share/vm/memory/genRemSet.inline.hpp ! src/share/vm/memory/generation.cpp ! src/share/vm/memory/generation.hpp ! src/share/vm/memory/iterator.hpp ! src/share/vm/memory/modRefBarrierSet.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/memory/restore.cpp ! src/share/vm/memory/serialize.cpp ! src/share/vm/memory/sharedHeap.cpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp ! src/share/vm/oops/arrayOop.hpp ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/constantPoolKlass.hpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/cpCacheKlass.cpp ! src/share/vm/oops/cpCacheKlass.hpp ! src/share/vm/oops/cpCacheOop.cpp ! src/share/vm/oops/cpCacheOop.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/oops/instanceOop.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/markOop.hpp ! src/share/vm/oops/methodDataKlass.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayKlass.hpp ! src/share/vm/oops/objArrayOop.cpp ! src/share/vm/oops/objArrayOop.hpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oop.pcgc.inline.hpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/opto/buildOopMap.cpp ! src/share/vm/opto/callnode.hpp ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/idealKit.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/loopTransform.cpp ! src/share/vm/opto/machnode.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/macro.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/opcodes.cpp ! src/share/vm/opto/opcodes.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/parse3.cpp ! src/share/vm/opto/phaseX.cpp ! src/share/vm/opto/phaseX.hpp ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/subnode.hpp ! src/share/vm/opto/superword.cpp ! src/share/vm/opto/type.cpp ! src/share/vm/opto/type.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/atomic.cpp ! src/share/vm/runtime/atomic.hpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/frame.hpp ! src/share/vm/runtime/globals.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/globals_extension.hpp ! src/share/vm/runtime/hpi.cpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/jniHandles.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/utilities/copy.hpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/globalDefinitions.cpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/taskqueue.hpp ! src/share/vm/utilities/vmError.cpp Changeset: 34935c25a52d Author: kamg Date: 2008-04-15 18:11 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/34935c25a52d Merge ! make/linux/makefiles/cscope.make ! make/solaris/makefiles/cscope.make Changeset: fb75a7673531 Author: rasbold Date: 2008-04-16 14:55 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fb75a7673531 Merge ! src/cpu/x86/vm/assembler_x86_64.cpp Changeset: d1a5218d7eaf Author: kvn Date: 2008-04-16 19:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/d1a5218d7eaf 6686791: Side effect in NumberFormat tests with -server -Xcomp Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control(). Reviewed-by: jrose, sgoldman ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp From Thomas.Rodriguez at Sun.COM Fri Apr 18 14:14:46 2008 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Fri, 18 Apr 2008 14:14:46 -0700 Subject: review (S) for 6601321 Message-ID: <48090F46.6040101@sun.com> http://webrev.invokedynamic.info/never/6601321/ From Thomas.Rodriguez at Sun.COM Fri Apr 18 14:15:56 2008 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Fri, 18 Apr 2008 14:15:56 -0700 Subject: review (S) for 6663848 Message-ID: <48090F8C.1090203@sun.com> http://webrev.invokedynamic.info/never/6663848/ From Vladimir.Kozlov at Sun.COM Tue Apr 22 19:25:53 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Tue, 22 Apr 2008 19:25:53 -0700 Subject: Request for Review (S): 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe Message-ID: <480E9E31.8020208@sun.com> http://webrev.invokedynamic.info/kvn/6625997/index.html Fixed 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe Problem: CastPP, CheckCastPP and Proj nodes are not "dead" loop safe after the putback 20061023120554.jrose.dolphin-cleanups which added new methods Ideal_allocation(), Ideal_klass(), Ideal_length(). These methods could bypass the next nodes chain to get a klass or an array's length from inputs of an Allocation node: Allocate <- Proj <- CheckCastPP. Also these nodes could be bypassed with Escape Analysis to get a field's value if they are not related to the value's instance. As result dead data loop could be created. Solution: Make CastPP and CheckCastPP nodes not dead loop safe. Make Proj node not dead loop safe if it is a memory projection or a projection from allocation node. Reviewed by: Fix verified (y/n): y, failed test case. Other testing: PRT From chuck.rasbold at sun.com Wed Apr 23 08:43:13 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Wed, 23 Apr 2008 15:43:13 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6688137: c++ interpreter fails on 64bit sparc Message-ID: <20080423154315.B212B2736F@hg.openjdk.java.net> Changeset: 9e5a7340635e Author: sgoldman Date: 2008-04-17 07:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/9e5a7340635e 6688137: c++ interpreter fails on 64bit sparc Summary: Misc. 64bit and endian fixes for sparc Reviewed-by: never, kvn, rasbold Contributed-by: volker.simonis at gmail.com ! src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp ! src/cpu/sparc/vm/cppInterpreter_sparc.cpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp From vladimir.kozlov at sun.com Wed Apr 23 13:45:16 2008 From: vladimir.kozlov at sun.com (vladimir.kozlov at sun.com) Date: Wed, 23 Apr 2008 20:45:16 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6689060: Escape Analysis does not work with Compressed Oops Message-ID: <20080423204519.2F8FB273E2@hg.openjdk.java.net> Changeset: b130b98db9cf Author: kvn Date: 2008-04-23 11:20 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/b130b98db9cf 6689060: Escape Analysis does not work with Compressed Oops Summary: 64-bits VM crashes with -XX:+AggresiveOpts (Escape Analysis + Compressed Oops) Reviewed-by: never, sgoldman ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/assembler_x86_64.cpp ! src/cpu/x86/vm/assembler_x86_64.hpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/runtime/sharedRuntime.cpp From thomas.rodriguez at sun.com Wed Apr 23 18:07:38 2008 From: thomas.rodriguez at sun.com (thomas.rodriguez at sun.com) Date: Thu, 24 Apr 2008 01:07:38 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6601321: Assert(j == 1 || b->_nodes[j-1]->is_Phi(), "CreateEx must be first instruction in block") Message-ID: <20080424010740.0989C27484@hg.openjdk.java.net> Changeset: d942c7e64bd9 Author: never Date: 2008-04-23 13:57 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/d942c7e64bd9 6601321: Assert(j == 1 || b->_nodes[j-1]->is_Phi(),"CreateEx must be first instruction in block") Reviewed-by: kvn, rasbold, sgoldman, jrose ! src/share/vm/opto/lcm.cpp From vladimir.kozlov at sun.com Wed Apr 23 21:48:46 2008 From: vladimir.kozlov at sun.com (vladimir.kozlov at sun.com) Date: Thu, 24 Apr 2008 04:48:46 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe Message-ID: <20080424044848.56A52274A5@hg.openjdk.java.net> Changeset: 72f4a668df19 Author: kvn Date: 2008-04-23 19:09 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/72f4a668df19 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe Summary: EA and initialization optimizations could bypass these nodes. Reviewed-by: rasbold, never ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/multnode.hpp ! src/share/vm/opto/node.hpp From thomas.rodriguez at sun.com Thu Apr 24 13:37:24 2008 From: thomas.rodriguez at sun.com (thomas.rodriguez at sun.com) Date: Thu, 24 Apr 2008 20:37:24 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6663848: assert(i < Max(), "oob") in C2 with -Xcomp Message-ID: <20080424203728.3492B27565@hg.openjdk.java.net> Changeset: e0bd2e08e3d0 Author: never Date: 2008-04-24 11:13 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/e0bd2e08e3d0 6663848: assert(i < Max(),"oob") in C2 with -Xcomp Summary: NeverBranchNodes aren't handled properly Reviewed-by: kvn, sgoldman, rasbold, jrose ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/cfgnode.hpp ! src/share/vm/opto/compile.cpp + test/compiler/6663848/Tester.java From John.Rose at Sun.COM Fri Apr 25 14:54:22 2008 From: John.Rose at Sun.COM (John Rose) Date: Fri, 25 Apr 2008 14:54:22 -0700 Subject: Introductions In-Reply-To: <47AA3F9C.4020101@gazeta.pl> References: <479EDC1C.7090707@sun.com> <47AA3F9C.4020101@gazeta.pl> Message-ID: <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> [CC-ing hotspot-compiler-dev because this is of general interest.] On Feb 6, 2008, at 3:15 PM, Marcin Miel?y?ski wrote: > First, I'd like to introduce the problem a little bit. When testing > joni performance there was a clear evidence that main bytecode > interpreter switch got slowed down by big number of cases (reducing > them to only used ones for a compiled regexp substantially > increased performance). Before I noticed the switch problem, I > tried to inline some opcode methods into the big switch (using > local variables everywhere, etc), the beginnings were very > promising as tested regexps turned out to be 3x faster without > changing the actual implementation logic, but as I continued to add > more and more inlined cases the whole switch began to be something > like 8x slower. After a few hundred bytecodes, the inlining heuristic starts to get scared. Hand inlining is like that: The JVM prefers to do this for you. You can play with -XX:FreqInlineSize=N where N is larger than your switch method. Also maybe bump -XX:MaxInlineSize (default 35). But it is better to use small methods and let the JVM pick inlinings. You may have found a weakness in the profiling that causes the inliner to fall down. > Then I realized that there's something wrong with inlining. After > that tried different approaches like splitting the switch into ten > switches and even a tree like one (which turned out to be a > complete nonsense of course). As split switches worked better for > cases I tested, the whole thing became a lot slower on average. Another thing that's better since Feb. is we now have a disassembly story that we can share with the public. I put in a plugin interface to the Gnu binutils library; it's integrated here, in version 13 of the JVM: http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/c7c777385a15 There are sources and (imperfect) build instructions for making the plugin. The point of the -XX:+PrintAssembly option is to give you a very concrete view (often too concrete) as to what decisions the JIT is making. In your experiments you would have seen a range of code shapes, from decision trees to jump tables. See this and its child pages (you already know about some of this): http://wikis.sun.com/display/HotSpotInternals/PerformanceTechniques > Then I decided to prepare a reduced testcase (attached as > Aswitch2.java file) for the problem and saw rather surprising > results. With client compiler benchmarks didn't depend on the > number of cases but for hotspot server compiler it turned out to be > the opposite (but it was not linear). > As you've mentioned before, with small number of cases (and/or low > complexity of the whole method) Hotspot is able to inline the > method and the switch into it's caller and then prove that the > switching value is constant. After increasing number of cases (like > 5..10) I began to see: > That's a weak part of our heuristic. Hmm. It's especially bad when there is a great variation in size (switch on constant vs. switch on non-constant). We know we need heuristics that can estimate the effects of constant folding. Branches (switches) based on parameter values are a key case. > and server compiled code was already slower than client compiled > (250ms client/280-300ms server after being warmed up) > After adding another 20 cases this: > That's FreqInlineSize in action. > appeared in hotspot.log and the timings went down to 650ms > after adding another 30 or so cases the timings got even worse > (700ms and more after being warmed up). > > So I began to draw conclusions that counting case hits (found it in > MultiBranchData class and it's consumers) makes Hotspot try to > inline the most frequent case into the caller or something. I can > imagine this for two way branch with a stable flow path, but when > switch case distribution begins to be somewhat 'random/unknown' (in > this microbenchmark it is not the case though, as only one case is > being hit) for Hotspot profiler and the switch is big enough, the > hole thing looses the point, yet switches shall be O(1) with dense > values. In how many places do you expect the switch code to be inlined? Once for the general case and many places for constant switch selectors? > Even more surprisingly, the benchmark gets about 10% boost with > jump tables turned off It must be getting smart or lucky with decision trees. If a small minority of cases determines the performance, and those get compiled into the heart of the decision tree (and hence the loop), then the other cases don't really matter. > whereas -XX:MaxInlineSize=500 or so doesn't affect the benchmark > (though it gave a boost for some other joni regexp benchmarks) FreqInlineSize takes precedence over MaxInlineSize for hot methods, IIRC. If so, it's a bug that MaxInlineSize > FreqInlineSize silently has no effect. > Here are my numbers for aforementioned microbenchmark (64 cases in > switch, 20000000 iterations): > > java -client > > 266 > 250 > 250 > 250 > 250 > 250 > 250 > 250 > 250 > 250 > > java -server > > 1984 > 625 > 688 > 703 > 687 > 703 > 688 > 703 > 687 > 704 > > java -server -XX:-UseJumpTables > > 1985 > 578 > 657 > 656 > 640 > 657 > 640 > 657 > 656 > 640 > > Harmony (client) > > 422 > 391 > 796 > 219 > 219 > 234 > 219 > 234 > 219 > 235 > > Harmony -server > > 828 > 312 > 485 > 515 > 235 > 234 > 234 > 235 > 234 > 235 > > I think these numbers show there's something wrong with switches > and opto compiler. > > If you don't mind I'd like to tell a bit about joni (https:// > svn.codehaus.org/jruby/joni/) internals. It's a byte based bytecode > compiled regex engine that's a more or less straight port of > Oniguruma (though some wild pointer manipulations performed by > Oniguruma made certain things impossible to be ported directly). It > uses encoding abstraction to access byte arrays (though there are > optimizations for single byte encodings that are more aggressive > than those found in Oniguruma). Classes in encoding package > represent different encoding implementations extending the abstract > class Encoding (it was an interface before but invokevirtual turned > out to be noticeable faster), they deal with character length > tables, character folding, code point conversions and navigating > throughout byte arrays. The parsing engine consists of > ScannerSupport.java/Lexer.java responsible for scanning/tokenizing, > quite standard stuff (except they're syntax configurable, there is > a number of preset syntaxes in Syntax.java). Parser.java is > responsible for building an AST (from nodes in ast package), it > also case folds StringNodes when case insensitive flag is turned on > (it also takes an advantage of more sharing and adds support for > COW, that's almost impossible in c version). Analyzer.java performs > AST integrity/infinite recursion checks (Oniguruma is able to > define named groups and either refer them or call them at different > levels of call stack depth). Analyzer.java is also responsible for > most optimizations like quantifier reduction/elimination, fixed > quantifier deletion/expansion, case fold expansion, string > expansion, unused group elimination and other AST transformations > (as they call them 'automatic posseivation' or 'look behind > alternative division'). It also does optional (x*)* combination > explosion checks and calculates potential minimum/maximum lengths > based on AST and uses (OptMapInfo.java, OptExactInfo.java, > NodeOptInfo.java, MinMaxLen.java) classes that contain some (?) > statistical knowledge to compute fail fast/find fast application > thresholds and selects fail fast/find fast search algorithms > (SearchAlgorithm.java), it also selects short circuit paths given > anchor information. Compiler.java does a pretty standard job > traversing the AST and emitting opcodes into an int[] array > (Oniguruma uses void* array but in Java we'd need to pack control > data like string lengths/relative addresses in byte[] with > inefficient lookup). It does that in two passes (first it > calculates code lengths to get eventual jump/call addresses - also > standard thing), unrolls/eliminates loops and checks whether the > compiled code will need a stack when run. That is a well-written, mature RE package. Having worked on a couple in my own deep past, it warms my heart. Do you expect to get a different inlining of the Big Switch for each Encoding? That will be tricky but may be desirable. You almost want to use something like anonymous classes as a templating mechanism to forcibly copy the Big Switch into distinct type contexts. Encodings as virtuals: For megamorphic calls, vtables are a little cheaper than itables. But you win bigger when you factor things so that interface or virtual calls are monomorphic or at most bimorphic. For some info on the bleeding edge of hotspot interface performance, see: http://openjdk.java.net/projects/mlvm/ subprojects.html#interface-perf > StackMachnie.java contains methods responsible for stack management/ > manipulation. ByteCodeMachine.java is the actual bytecode > interpreter implementation (with matchAt method containing the big > switch). Each opcode is implemented as a separate method. That is reasonable. It keeps the switch per se small, and (implicitly) asks the JVM to inline the opcode methods that really matter. > For some patterns like /a.*b/ where [anychar*-peek-next-sb:b] and > similar opcodes are being emitted which contain fast inner loops, > for those, joni can be even twice as fast as Oniguruma. The issue > shows up when the code is main switch heavy, a good example is > http://shootout.alioth.debian.org/gp4sandbox/benchmark.php? > test=regexdna&lang=ruby&id=0 benchmark which we perform rather > poorly (up to 2x slower than c version). Keeping in mind joni uses > single byte specialized bytecodes this seems a bit strange, pattern: > > /(?i:[cgt]gggtaaa|tttaccc[acg])/ > > compiles down to: > > [push:(41)] [cclass-sb:6] [push:(4)] [exact1:g] > [jump:(2)] [exact1:G] [push:(4)] [exact1:g] [jump:(2)] > [exact1:G] [push:(4)] [exact1:g] [jump:(2)] [exact1:G] > [exactn-ic-sb:4:taaa] [jump:(39)] [push:(4)] [exact1:t] [jump:(2)] > [exact1:T] [push:(4)] [exact1:t] [jump:(2)] [exact1:T] > [push:(4)] [exact1:t] [jump:(2)] [exact1:T] [exactn-ic-sb:4:accc] > [cclass-sb:6] [end] [finish] > > for sample string: > > GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA > > the execution goes like this: > > forward_search_range: str: 0, end: 60, s: 0, range: 60 > forward_search_range success: low: -1, high: 0, dmin: 0, dmax: 1 > match_at: str: 0, end: 60, start: 0, sprev: 0 > size: 60, start offset: 0 > 0> "GGCCGGG..." [push:(41)] > 0> "GGCCGGG..." [cclass-sb:6] > 1> "GCCGGGC..." [push:(4)] > 1> "GCCGGGC..." [exact1:g] > 1> "GCCGGGC..." [exact1:G] > 2> "CCGGGCG..." [push:(4)] > 2> "CCGGGCG..." [exact1:g] > 2> "CCGGGCG..." [exact1:G] > 0> "GGCCGGG..." [push:(4)] > 0> "GGCCGGG..." [exact1:t] > 0> "GGCCGGG..." [exact1:T] > 0> "GGCCGGG..." [finish] > forward_search_range: str: 0, end: 60, s: 1, range: 60 > forward_search_range success: low: 0, high: 1, dmin: 0, dmax: 1 > match_at: str: 0, end: 60, start: 1, sprev: 0 > size: 60, start offset: 1 > 1> "GCCGGGC..." [push:(41)] > 1> "GCCGGGC..." [cclass-sb:6] > 2> "CCGGGCG..." [push:(4)] > 2> "CCGGGCG..." [exact1:g] > 2> "CCGGGCG..." [exact1:G] > 1> "GCCGGGC..." [push:(4)] > 1> "GCCGGGC..." [exact1:t] > 1> "GCCGGGC..." [exact1:T] > 0> "GGCCGGG..." [finish] > ..... > > Case fold expansion optimization actually made the opposite effect > here as we seem to have problem with switch method performance > itself (all opcodes are very cheap here). We might get rid of this > optimization as [exactn-ic-sb:n:...] is very cheap for some single > byte encodings (direct table lookup), but a multibyte one ([exactn- > ic:n:...]) has very high cost as it uses two buffers to unfold the > code points and make case insensitive comparison. Also, it would be > an ugly workaround. It sounds like you have a specific need for customizing your Big Switch for case-folding searches. This takes me one step closer to the templating precipice. One way to encourage templating-like behavior from the JVM is to put your Big Switch into an abstract base class and then specialize it in a range of subclasses. In this case, perhaps the range of subclasses is dynamically created. (Depends on the number of degrees of freedom across which you want to customize. Can you statically enumerate in a bunch of hand-named subclasses, or not?) > I admit there still might be bottlenecks in java code I'm not aware > of. On the other hand, work on jvm bytecode compiled version has > been started. It will require completely new code for stack > manipulation, fail fast logic and anchors (Matcher.java). Though, > it will bring new exciting optimization opportunities like taking > advantage of java stack and building fail fast code from templates > (not to mention even more specialized opcode equivalent > implementations that will not use switches). I don't have much hope that the java stack will give you much leverage on JVM performance, unless you use it in ways that are very similar to javac output. The java stack is for naming temporary values compactly, as opposed to a plain register-based architecture. On the other hand, compiling to bytecodes is a great way to bypass all sort of Big Switch issues. Use anonymous classes for that, if the JVM supports them. (No plans to standardize these yet on other JVMs. JSR 292 has its hands full with invokedynamic.) The PyPy experience shows that partial evaluation of your Big Switch can take you a long way. I'd like to make our switch optimizations work better, even if you end up going all the way to bytecodes. BTW, going to bytecodes means you start dealing with the cost of registering, compiling, and GC-ing the results of class loading. Anonymous classes help address this, but it's expensive; we've seen scaling problems with such things, e.g., databases that compile every SQL query to a tiny class. Perhaps the best thing to do would be (like JRuby) to go to bytecodes only after the same RE had been used N times or more (N = 40, maybe). Meanwhile, the Big Switch gives good performance for low-use REs. Best of all would be a way to fold the Big Switch with a constant code vector and tell the JVM "partial evaluate this". With the right library factoring, we can get close to that ideal, but bytecode generation is probably part of the mix for the foreseeable future. > Here's the code from the output above: > > byte[] pat = "(?i:[cgt]gggtaaa|tttaccc[acg])".getBytes(); > byte[] str = > "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA".getByte > s(); > Regex re = new Regex(pat, 0, pat.length, Option.NONE, > ASCIIEncoding.INSTANCE, Syntax.RUBY); > > Matcher m = re.matcher(str, 0, str.length); > int result = m.search(0, str.length, Option.DEFAULT); > > To enable debug information (which will output AST structure, > applied optimizations and the execution itself) DEBUG_ALL flag in > Config.java needs to be turned on. > > > So far I've been reading publications/papers from following locations: > > http://java.sun.com/javase/technologies/hotspot/publications/ > http://www.ssw.uni-linz.ac.at/Research/Papers/ > https://openjdk.dev.java.net/hotspot/ > > I've also done some review of Hotspot sources (I'm overwhelmed by > it) mainly the opto bytecode parser and profiler structures, a bit > of call site profiling and caching logic. Also did some review of > optimization phases. But it's still too early for me to draw any > conclusions, so my question is where to find additional information > if it exists and what best approach to choose when analyzing the > sources ? We've started a wiki for this purpose; see above. It would be great if you (or anyone else on the hotspot learning curve) would contribute to it as you discover important facts. I've added stuff, but since I've been working on this for 10 years, it's hard to have perspective on what newcomers need to know. And, this is the best year by far for being a newcomer! Best, -- John > > Best regards, > Marcin > > public class Aswitch2 { > > public static void main(String[]args) { > Aswitch2 a = new Aswitch2(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > a.bench(); > } > > public void bench() { > long t = System.currentTimeMillis(); > int result = 0; > for (int i=0; i<10000000;i++) { > result += testSwitch((i & 1) == 1 ? i&1 : 1, i%10); > } > System.out.println(result); > System.out.println(System.currentTimeMillis() - t); > } > > public int testSwitch(int a, int n) { > switch (a) { > // only this case is in use, but hotspot doesnt know > about it > case 1: > a += 1; > break; > case 2: > for (int i=0; i a += 2; > break; > case 3: > for (int i=0; i a += 3; > break; > case 4: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 4; > break; > case 5: > for (int i=0; i a += 5; > break; > case 6: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > a += 10; > > a += 6; > break; > case 7: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 7; > break; > case 8: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 8; > break; > case 9: > a += 9; > > break; > case 10: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > a += 10; > break; > case 11: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > a += 11; > break; > case 12: > for (int i=0; i a += 11; > break; > case 13: > for (int i=0; i a += 11; > break; > case 14: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 11; > break; > case 15: > for (int i=0; i a += 11; > break; > case 16: > for (int i=0; i a += 11; > break; > case 17: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 11; > break; > case 18: > for (int i=0; i a += 11; > break; > case 19: > for (int i=0; i a += 11; > break; > case 20: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 11; > break; > case 21: > for (int i=0; i a += 11; > break; > case 22: > for (int i=0; i a += 11; > break; > case 23: > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i for (int i=0; i for (int i=0; i for (int i=0; i > for (int i=0; i a += 11; > break; > case 24: > for (int i=0; i a += 11; > break; > case 25: > for (int i=0; i a += 11; > break; > case 26: > for (int i=0; i a += 11; > break; > case 27: > for (int i=0; i a += 11; > break; > case 28: > for (int i=0; i a += 11; > break; > case 29: > for (int i=0; i a += 11; > break; > case 30: > for (int i=0; i a += 11; > break; > case 31: > for (int i=0; i a += 11; > break; > case 32: > for (int i=0; i a += 11; > break; > case 33: > for (int i=0; i a += 11; > break; > case 34: > for (int i=0; i a += 11; > break; > case 35: > for (int i=0; i a += 11; > break; > case 36: > for (int i=0; i a += 11; > break; > case 37: > for (int i=0; i a += 11; > break; > case 38: > for (int i=0; i a += 11; > break; > case 39: > for (int i=0; i a += 11; > break; > case 40: > for (int i=0; i a += 11; > break; > case 41: > for (int i=0; i a += 11; > break; > case 42: > for (int i=0; i a += 11; > break; > case 43: > for (int i=0; i a += 11; > break; > case 44: > for (int i=0; i a += 11; > break; > case 45: > for (int i=0; i a += 11; > break; > case 46: > for (int i=0; i a += 11; > break; > case 47: > for (int i=0; i a += 11; > break; > case 48: > for (int i=0; i a += 11; > break; > case 49: > for (int i=0; i a += 11; > break; > case 50: > for (int i=0; i a += 11; > break; > case 51: > for (int i=0; i a += 11; > break; > case 52: > for (int i=0; i a += 11; > break; > case 53: > for (int i=0; i a += 11; > break; > case 54: > for (int i=0; i a += 11; > break; > case 55: > for (int i=0; i a += 11; > break; > case 56: > for (int i=0; i a += 11; > break; > case 57: > for (int i=0; i a += 11; > break; > case 58: > for (int i=0; i a += 11; > break; > case 59: > for (int i=0; i a += 11; > break; > case 60: > for (int i=0; i a += 11; > break; > case 61: > for (int i=0; i a += 11; > break; > case 62: > > for (int i=0; i > for (int i=0; i a += 11; > break; > case 63: > for (int i=0; i if (n > 10) {for (int i=0; i if (n > n + 2) {for (int i=0; i if (n > 10) {for (int i=0; i a += 11; > break; > case 64: > for (int i=0; i a += 11; > break; > default: > break; > } > return a; > } > > } From charles.nutter at sun.com Fri Apr 25 15:50:27 2008 From: charles.nutter at sun.com (Charles Oliver Nutter) Date: Fri, 25 Apr 2008 17:50:27 -0500 Subject: Introductions In-Reply-To: <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> References: <479EDC1C.7090707@sun.com> <47AA3F9C.4020101@gazeta.pl> <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> Message-ID: <48126033.9020404@sun.com> John Rose wrote: > After a few hundred bytecodes, the inlining heuristic starts to get > scared. Hand inlining is like that: The JVM prefers to do this for you. > > You can play with -XX:FreqInlineSize=N where N is larger than your > switch method. Also maybe bump -XX:MaxInlineSize (default 35). > > But it is better to use small methods and let the JVM pick inlinings. > You may have found a weakness in the profiling that causes the inliner > to fall down. The challenge for both JRuby and JOni is that our switches alone are of a substantial size. In the JRuby interpreter, there's over 100 cases. Even without inlining any of them by hand, having even the simplest logic in those switches ends up pushing beyond the default inline size. But how else can it be implemented? > That's a weak part of our heuristic. Hmm. It's especially bad when > there is a great variation in size (switch on constant vs. switch on > non-constant). We know we need heuristics that can estimate the effects > of constant folding. Branches (switches) based on parameter values are > a key case. For JRuby interpreter, there are probably "hottest" cases (newlines, calls, literals) and "coldest" cases (flip-flop, unusual special $ globals), but the "warm" cases will be pretty widely distributed. Of course, I haven't measured this...it might be worth getting real measurements or...is there a way to dump out what profiling HotSpot does on switches today? > That is reasonable. It keeps the switch per se small, and (implicitly) > asks the JVM to inline the opcode methods that really matter. JRuby interpreter works the same way, with perhaps a handful of "really hot" cases directly inlined into the switch. > The PyPy experience shows that partial evaluation of your Big Switch can > take you a long way. I'd like to make our switch optimizations work > better, even if you end up going all the way to bytecodes. I think this is going to be a must. The cost of compiling and loading Java bytecodes is always going to be more than the cost of "hitting the ground running" by executing the language's own bytecodes or AST directly at first. And for cases like Ruby, where "eval" is a family favorite, we simply can't *afford* to compile everything. Ask the DLR guys about the cost of compiling everything and you'll find out why they backtracked this past year and started writing interpreter-generation into the DLR. We're not as bad as them (we don't have to also JIT to native code before executing) but it's a similar problem. And on our side, we've got the class and permgen bookkeeping to add back a little pain. What bothers me about Marcin's numbers is now much better Harmony does...as much as 3x better performance on the big switches. We just recently got our interprter to run faster than C Ruby's by eliminating some arg boxing, but if we could get a 3x improvement on switch-based interpretation we'd almost be beating the Ruby 1.9 *bytecode* execution. > We've started a wiki for this purpose; see above. It would be great if > you (or anyone else on the hotspot learning curve) would contribute to > it as you discover important facts. I've added stuff, but since I've > been working on this for 10 years, it's hard to have perspective on what > newcomers need to know. And, this is the best year by far for being a > newcomer! And I'll say it again: Marcin, get on that wiki and just start dumping what you find. We'll all be better for it. - Charlie From chuck.rasbold at sun.com Mon Apr 28 11:58:34 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Mon, 28 Apr 2008 18:58:34 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6646019: array subscript expressions become top() with -d64 Message-ID: <20080428185837.962C227792@hg.openjdk.java.net> Changeset: c0939256690b Author: rasbold Date: 2008-04-24 14:02 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/c0939256690b 6646019: array subscript expressions become top() with -d64 Summary: stop compilation after negative array allocation Reviewed-by: never, jrose ! src/share/vm/opto/parse2.cpp + test/compiler/6646019/Test.java From John.Rose at Sun.COM Tue Apr 29 01:21:50 2008 From: John.Rose at Sun.COM (John Rose) Date: Tue, 29 Apr 2008 01:21:50 -0700 Subject: review (S) for 6695288 Message-ID: <9F161949-4211-4A91-B5E2-2A296CB4934B@Sun.COM> 6695288: runThese tests expr30303 and drem00301m1 fail when compiled code executes without deopt Summary: rework Value method for ModD and ModF, to DTRT for infinities http://webrev.invokedynamic.info/jrose/6695288 (This is blocking my push for 6652736, which paradoxically fails to integrate because it increases test coverage.) Thanks, -- John From chuck.rasbold at sun.com Tue Apr 29 10:35:52 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:35:52 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 12 new changesets Message-ID: <20080429173615.7AF1B2797D@hg.openjdk.java.net> Changeset: 8b0b3490194f Author: xdono Date: 2008-04-09 11:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8b0b3490194f Added tag jdk7-b25 for changeset 7836be3e92d0 ! .hgtags Changeset: 6e085831cad7 Author: sbohne Date: 2008-04-10 15:49 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/6e085831cad7 6692235: Fix for 6666698 broke -XX:BiasedLockingStartupDelay=0 Summary: Stack allocated VM_EnableBiasedLocking op must be marked as such Reviewed-by: xlu, acorn, never, dholmes ! src/share/vm/runtime/biasedLocking.cpp Changeset: f3b3fe64f59f Author: kvn Date: 2008-04-15 10:49 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/f3b3fe64f59f 6692301: Side effect in NumberFormat tests with -server -Xcomp Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control(). Reviewed-by: jrose, sgoldman ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp Changeset: 6cc3576e5142 Author: jcoomes Date: 2008-04-16 15:34 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/6cc3576e5142 6689788: Bump HSX12 build version number Summary: Update HSX12 build number to 03 Reviewed-by: kvn ! make/hotspot_version Changeset: ad0b851458ff Author: trims Date: 2008-04-22 15:36 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ad0b851458ff Merge - src/share/vm/memory/allocationStats.cpp - src/share/vm/memory/allocationStats.hpp Changeset: e7a91a357527 Author: kamg Date: 2008-04-16 17:36 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/e7a91a357527 6622385: Accessing protected static methods Summary: Protected contraints should only be applied if member is not static Reviewed-by: acorn, coleenp ! src/share/vm/runtime/reflection.cpp Changeset: 018d5b58dd4f Author: kamg Date: 2008-04-17 22:18 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/018d5b58dd4f 6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes Summary: Initial checkin of JSDT code Reviewed-by: acorn, sbohne ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/solaris/makefiles/dtrace.make ! make/solaris/makefiles/mapfile-vers ! src/cpu/sparc/vm/nativeInst_sparc.cpp ! src/cpu/sparc/vm/nativeInst_sparc.hpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/x86/vm/nativeInst_x86.cpp ! src/cpu/x86/vm/nativeInst_x86.hpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp + src/os/linux/vm/dtraceJSDT_linux.cpp + src/os/solaris/vm/dtraceJSDT_solaris.cpp + src/os/windows/vm/dtraceJSDT_windows.cpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/includeDB_core ! src/share/vm/oops/methodOop.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h + src/share/vm/runtime/dtraceJSDT.cpp + src/share/vm/runtime/dtraceJSDT.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp Changeset: aab136449123 Author: trims Date: 2008-04-17 16:29 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/aab136449123 6690518: Bump Version to 13 B01 Summary: Change Hotspot version and build number for 13b1 Reviewed-by: pbk ! make/hotspot_version Changeset: 86a689f680c5 Author: kamg Date: 2008-04-18 07:51 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/86a689f680c5 Merge Changeset: ec73d88d5b43 Author: kamg Date: 2008-04-23 06:35 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ec73d88d5b43 Merge ! make/hotspot_version ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp Changeset: a76240c8b133 Author: rasbold Date: 2008-04-28 08:08 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/a76240c8b133 Merge ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: 3e2d987e2e68 Author: rasbold Date: 2008-04-29 06:52 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/3e2d987e2e68 Merge From chuck.rasbold at sun.com Tue Apr 29 10:49:35 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:49:35 +0000 Subject: hg: jdk7/hotspot-comp: 7 new changesets Message-ID: <20080429174935.B3C6927992@hg.openjdk.java.net> Changeset: be0ea51b2743 Author: ohair Date: 2008-03-05 18:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/be0ea51b2743 6662830: OpenJDK build testing results Summary: Small corrections in the README. Reviewed-by: xdono ! README-builds.html Changeset: d83470fdf495 Author: ohair Date: 2008-03-09 13:11 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/d83470fdf495 6649270: Change by-default openjdk building in control/make/makefile to use open source tree Summary: Change build rules to allow for openjdk builds by default when building the closed or production build. Reviewed-by: xdono ! Makefile ! make/Defs-internal.gmk Changeset: d6b08bdb9a54 Author: ohair Date: 2008-03-09 15:47 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/d6b08bdb9a54 6649672: Adjustments to OUTPUTDIR default and mkdirs to avoid empty directory clutter Summary: Cleanup of OUTPUTDIR handling Reviewed-by: xdono ! Makefile Changeset: f769c64f71ac Author: ohair Date: 2008-03-13 16:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/f769c64f71ac 6675289: Make default production build NOT include an openjdk build Summary: SKIP_OPENJDK_BUILD now set to true. Reviewed-by: xdono ! make/Defs-internal.gmk Changeset: 05809a7eb190 Author: ohair Date: 2008-03-18 11:01 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/05809a7eb190 6674232: OPENJDK=false is same as OPENJDK=true Summary: If OPENJDK has a value, that value must be "true", empty value == undefined with GNU make. Reviewed-by: tbell ! make/Defs-internal.gmk Changeset: cbc8ad9dd0e0 Author: ohair Date: 2008-03-25 14:38 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/cbc8ad9dd0e0 6623832: Cleanup old j2se makefile targets Summary: Just removing unneeded makefile rules and 'control' logic. Reviewed-by: xdono ! Makefile ! make/jdk-rules.gmk Changeset: 9410f77cc30c Author: xdono Date: 2008-04-09 11:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/rev/9410f77cc30c Added tag jdk7-b25 for changeset cbc8ad9dd0e0 ! .hgtags From chuck.rasbold at sun.com Tue Apr 29 10:50:12 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:50:12 +0000 Subject: hg: jdk7/hotspot-comp/corba: 3 new changesets Message-ID: <20080429175015.9967F27997@hg.openjdk.java.net> Changeset: a51017b6ba6d Author: ohair Date: 2008-03-06 13:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/corba/rev/a51017b6ba6d 6624808: corba makefiles not using langtools compiler Summary: If supplied, the langtools javac should be used. Reviewed-by: xdono ! make/common/shared/Defs.gmk Changeset: 5e61d5df6258 Author: ohair Date: 2008-03-25 14:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/corba/rev/5e61d5df6258 6627817: Remove ^M characters in all files (Makefiles too) Summary: Some files included the use of the ^M character, which has been deleted Reviewed-by: xdono ! src/share/classes/com/sun/corba/se/impl/corba/orb_config_design.txt ! src/share/classes/org/omg/CORBA/ir.idl ! src/share/classes/org/omg/DynamicAny/DynamicAny.idl Changeset: 0043eb3d4e62 Author: xdono Date: 2008-04-09 11:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/corba/rev/0043eb3d4e62 Added tag jdk7-b25 for changeset 5e61d5df6258 ! .hgtags From chuck.rasbold at sun.com Tue Apr 29 10:52:36 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:52:36 +0000 Subject: hg: jdk7/hotspot-comp/jaxp: 2 new changesets Message-ID: <20080429175240.83F972799E@hg.openjdk.java.net> Changeset: a3b3ba7d6034 Author: ohair Date: 2008-03-04 10:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jaxp/rev/a3b3ba7d6034 6652588: Fix broken JPRT makefile target, no bundle saved Summary: jprt make rules missing the bundle up of the output Reviewed-by: xdono ! make/Makefile Changeset: da43cb85fac1 Author: xdono Date: 2008-04-09 11:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jaxp/rev/da43cb85fac1 Added tag jdk7-b25 for changeset a3b3ba7d6034 ! .hgtags From chuck.rasbold at sun.com Tue Apr 29 10:53:20 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:53:20 +0000 Subject: hg: jdk7/hotspot-comp/jaxws: 2 new changesets Message-ID: <20080429175323.C8832279A3@hg.openjdk.java.net> Changeset: 59fd8224ba2d Author: ohair Date: 2008-03-04 10:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jaxws/rev/59fd8224ba2d 6652588: Fix broken JPRT makefile target, no bundle saved Summary: jprt make rules were missing the bundle logic Reviewed-by: xdono ! make/Makefile Changeset: debd37e1a422 Author: xdono Date: 2008-04-09 11:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jaxws/rev/debd37e1a422 Added tag jdk7-b25 for changeset 59fd8224ba2d ! .hgtags From chuck.rasbold at sun.com Tue Apr 29 11:38:14 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 18:38:14 +0000 Subject: hg: jdk7/hotspot-comp/langtools: 18 new changesets Message-ID: <20080429183843.93CD6279DF@hg.openjdk.java.net> Changeset: 3c2d13c42e0a Author: mcimadamore Date: 2008-03-03 16:03 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/3c2d13c42e0a 6614974: javac successfully compiles code that throws java.lang.VerifyError when run Summary: synthetic cast missing when translating autoboxing expressions Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Lower.java + test/tools/javac/boxing/T6614974.java Changeset: b45f8d4794b7 Author: mcimadamore Date: 2008-03-04 12:14 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/b45f8d4794b7 6611449: Internal Error thrown during generic method/constructor invocation Summary: type-inference should fail since lub is not defined for primitive types Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java + test/tools/javac/generics/inference/6611449/T6611449.java + test/tools/javac/generics/inference/6611449/T6611449.out Changeset: 40813968849e Author: mcimadamore Date: 2008-03-04 13:00 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/40813968849e 6660289: declared bound in inner class referring a type variable of the outer class Summary: NPE caused by a defect in type-variable attribution Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/generics/T6660289.java Changeset: d472e2fbcc39 Author: mcimadamore Date: 2008-03-04 15:19 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/d472e2fbcc39 6608214: Exception throw while analysing a file with error Summary: bad error-recovery after bad type-variable bound is detected Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/api/6608214/T6608214.java Changeset: 38bd6375f37d Author: mcimadamore Date: 2008-03-04 15:45 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/38bd6375f37d 6663588: Compiler goes into infinite loop for Cyclic Inheritance test case Summary: interplay between cyclic inheritance and tvar bounds hangs javac Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java + test/tools/javac/T6663588.java Changeset: f09d6a3521b1 Author: jjg Date: 2008-03-06 10:07 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/f09d6a3521b1 4741726: allow Object += String Summary: remove code in line with restriction removed from JLS Reviewed-by: mcimadamore Contributed-by: michaelbailey0 at gmail.com ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/StringConversion2.java - test/tools/javac/expression/ObjectAppend.java Changeset: 508c01999047 Author: jjg Date: 2008-03-06 10:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/508c01999047 6668802: javac handles diagnostics for last line badly, if line not terminated by newline Summary: use CharBuffer.limit(), not the length of the backing array Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/util/Log.java + test/tools/javac/T6668802.java Changeset: b66d15dfd001 Author: jjg Date: 2008-03-11 13:14 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/b66d15dfd001 6307187: clean up code for -Xlint:options Summary: introduce common code for handling one-of and any-of options Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/main/JavacOption.java ! src/share/classes/com/sun/tools/javac/main/OptionName.java ! src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java ! test/tools/javac/6341866/T6341866.java Changeset: 7366066839bb Author: jjg Date: 2008-03-12 13:06 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/7366066839bb 6668794: javac puts localized text in raw diagnostics 6668796: bad diagnostic "bad class file" given for source files Summary: Replace internal use of localized text with JCDiagnostic fragments; fix diagnostic for bad source file Reviewed-by: mcimadamore ! 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/jvm/ClassReader.java ! 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/6668794/badClass/A.java + test/tools/javac/6668794/badClass/B.java + test/tools/javac/6668794/badClass/Test.java + test/tools/javac/6668794/badSource/Test.java + test/tools/javac/6668794/badSource/Test.out + test/tools/javac/6668794/badSource/p/A.java Changeset: 6beca695cfae Author: jjg Date: 2008-03-13 13:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/6beca695cfae 6559315: Inconsistent non-standard Sun copyright in src/share/opensource/javac/doc/document.css Summary: Remove obsolete files Reviewed-by: mcimadamore - src/share/opensource/javac/Makefile - src/share/opensource/javac/README-template.html - src/share/opensource/javac/build.properties - src/share/opensource/javac/build.xml - src/share/opensource/javac/doc/document.css - src/share/opensource/javac/doc/javac_lifecycle/Context.html - src/share/opensource/javac/doc/javac_lifecycle/Enter.html - src/share/opensource/javac/doc/javac_lifecycle/JavaCompiler.html - src/share/opensource/javac/doc/javac_lifecycle/Main.html - src/share/opensource/javac/doc/javac_lifecycle/ToDo.html - src/share/opensource/javac/doc/javac_lifecycle/contents.html - src/share/opensource/javac/doc/javac_lifecycle/index.html - src/share/opensource/javac/doc/javac_lifecycle/packages.html - src/share/opensource/javac/doc/javac_lifecycle/style.css - src/share/opensource/javac/nbproject/project.xml - src/share/opensource/javac/src/bin/javac.sh Changeset: 58039502942e Author: jjg Date: 2008-03-14 16:09 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/58039502942e 6638501: Regression with Javac in JDK6 U4 b03? Summary: replace some String paths with File paths in Paths.java Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/util/Paths.java + test/tools/javac/Paths/6638501/HelloLib/test/HelloImpl.java + test/tools/javac/Paths/6638501/JarFromManifestFailure.java + test/tools/javac/Paths/6638501/WsCompileExample.java + test/tools/javac/Paths/6638501/test/SayHello.java + test/tools/javac/Paths/6638501/test1/SayHelloToo.java Changeset: 18f0b1b5ffd6 Author: xdono Date: 2008-04-09 11:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/18f0b1b5ffd6 Added tag jdk7-b25 for changeset 58039502942e ! .hgtags Changeset: 058bdd3ca02e Author: ksrini Date: 2008-03-20 08:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/058bdd3ca02e 6618930: (javac) fix test after whitespace normalization Summary: whitespace normalization left the test unusable, back to service Reviewed-by: jjg ! test/tools/javac/6304921/T6304921.java ! test/tools/javac/6304921/T6304921.out Changeset: 6e4cefcce80a Author: mcimadamore Date: 2008-04-02 11:20 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/6e4cefcce80a 6569789: Compiler test lang/TYPE/type153/type15304/type15304.html fails since jdk7 b05 Summary: improved glb on type-inference Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Infer.java + test/tools/javac/generics/inference/6569789/T6569789.java Changeset: aeaa0f482b28 Author: mcimadamore Date: 2008-04-02 11:38 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/aeaa0f482b28 6509042: javac rejects class literals in enum constructors Summary: javac now distinguish between enum class literals and static fields Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/enum/T6509042.java Changeset: adaa3fc51b60 Author: mcimadamore Date: 2008-04-02 11:44 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/adaa3fc51b60 6531090: Cannot access methods/fields of a captured type belonging to an intersection type Summary: fixed lookup of field/methods on intersection types Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java + test/tools/javac/generics/6531090/T6531090a.java + test/tools/javac/generics/6531090/T6531090b.java Changeset: ddd77d1c1b49 Author: ksrini Date: 2008-04-03 18:01 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/ddd77d1c1b49 6570242: Regression test failures with Javac on win32. Summary: takes this test out of service until the reall bug is fixed Reviewed-by: jjg ! test/tools/javac/api/6431257/T6431257.java Changeset: c46d25a2350a Author: tbell Date: 2008-04-11 15:08 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/langtools/rev/c46d25a2350a Merge From chuck.rasbold at sun.com Tue Apr 29 10:56:16 2008 From: chuck.rasbold at sun.com (chuck.rasbold at sun.com) Date: Tue, 29 Apr 2008 17:56:16 +0000 Subject: hg: jdk7/hotspot-comp/jdk: 172 new changesets Message-ID: <20080429183100.211E1279AE@hg.openjdk.java.net> Changeset: e4f19efd20b4 Author: ohair Date: 2008-03-04 09:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e4f19efd20b4 6654456: OpenJDK build problem with freetype makefiles Summary: ifdef test on OPENJDK before it gets set based on source tree contents Reviewed-by: xdono ! make/common/shared/Platform.gmk Changeset: 80486f9d9221 Author: ohair Date: 2008-03-04 09:49 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/80486f9d9221 6637583: Build failure on latest Solaris, source missing include of resource.h? Summary: The include of sys/resource.h must be explicit Reviewed-by: xdono ! src/solaris/hpi/native_threads/src/sys_api_td.c Changeset: 929222887724 Author: ohair Date: 2008-03-04 09:50 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/929222887724 6638571: Fix freetype sanity check to work on solaris 64bit Summary: Missing -xarch options to build for 64bit Reviewed-by: xdono ! make/tools/freetypecheck/Makefile Changeset: 12b0d64c4953 Author: ohair Date: 2008-03-04 09:51 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/12b0d64c4953 6638060: Build failed with GNU make 3.81 (part of latest Solaris 'gmake') Summary: Changes to the way GNU make 3.81 deals with the env variable SHELL Reviewed-by: xdono ! make/java/nio/Makefile ! make/java/nio/genCharsetProvider.sh ! make/java/nio/genExceptions.sh Changeset: 82c85cfd8402 Author: ohair Date: 2008-03-04 09:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/82c85cfd8402 6668781: Openjdk windows cygwin build failure: no rule to make linker_md.obj target Summary: Use of GNU make vpath breaks on windows with C:/ style fullpaths Reviewed-by: xdono ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk Changeset: 65c8fd93d01c Author: ohair Date: 2008-03-06 11:37 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/65c8fd93d01c 6628146: Exclude the .hgignore and .hgtags files from the source bundles Summary: Just add to list of SCM files. Reviewed-by: xdono ! make/common/shared/Platform.gmk Changeset: 48d06b4c6460 Author: ohair Date: 2008-03-09 14:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/48d06b4c6460 6672777: Broken deploy build from jdk fix 6668781 for cygwin windows Summary: deploy workspace does not set BUILDDIR, uses it, assumes it is jdk/make. Reviewed-by: xdono ! make/common/Defs.gmk Changeset: 8ef9fd5c28fd Author: ohair Date: 2008-03-10 16:51 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/8ef9fd5c28fd 6649672: Adjustments to OUTPUTDIR default and mkdirs to avoid empty directory clutter Summary: OUTPUTDIR changes to make sure absolute path is correct. Reviewed-by: xdono ! make/common/Defs.gmk ! make/common/shared/Defs-control.gmk ! make/common/shared/Defs.gmk Changeset: 41d9c673dd9d Author: emcmanus Date: 2008-03-03 10:32 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/41d9c673dd9d 6602310: Extensions to Query API for JMX 2.0 6604768: IN queries require their arguments to be constants Summary: New JMX query language and support for dotted attributes in queries. Reviewed-by: dfuchs ! src/share/classes/com/sun/jmx/mbeanserver/Introspector.java ! src/share/classes/javax/management/AndQueryExp.java ! src/share/classes/javax/management/AttributeValueExp.java ! src/share/classes/javax/management/BetweenQueryExp.java ! src/share/classes/javax/management/BinaryOpValueExp.java ! src/share/classes/javax/management/BinaryRelQueryExp.java ! src/share/classes/javax/management/BooleanValueExp.java ! src/share/classes/javax/management/InQueryExp.java ! src/share/classes/javax/management/MatchQueryExp.java ! src/share/classes/javax/management/NotQueryExp.java ! src/share/classes/javax/management/NumericValueExp.java ! src/share/classes/javax/management/ObjectName.java ! src/share/classes/javax/management/OrQueryExp.java ! src/share/classes/javax/management/QualifiedAttributeValueExp.java ! src/share/classes/javax/management/Query.java ! src/share/classes/javax/management/QueryEval.java ! src/share/classes/javax/management/QueryExp.java + src/share/classes/javax/management/QueryParser.java ! src/share/classes/javax/management/StringValueExp.java + src/share/classes/javax/management/ToQueryString.java ! src/share/classes/javax/management/monitor/Monitor.java + test/javax/management/query/QueryDottedAttrTest.java ! test/javax/management/query/QueryExpStringTest.java + test/javax/management/query/QueryParseTest.java Changeset: d8b6af0f01f6 Author: dfuchs Date: 2008-03-03 12:29 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d8b6af0f01f6 6651382: The Java JVM SNMP provider reports incorrect stats when asked for multiple OIDs Summary: The JvmMemPoolEntryImpl must use the row index when caching data. Reviewed-by: jfdenise ! src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java Changeset: 10256bd4afcd Author: emcmanus Date: 2008-03-03 15:28 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/10256bd4afcd 6607114: Make JMXServiceURL reconstructible in MXBeans Summary: Add @ConstructorProperties tag to JMXServiceURL Reviewed-by: dfuchs ! src/share/classes/javax/management/remote/JMXServiceURL.java Changeset: 613f2c906b9d Author: emcmanus Date: 2008-03-03 15:29 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/613f2c906b9d Merge Changeset: 302cbd0a8ace Author: emcmanus Date: 2008-03-03 15:44 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/302cbd0a8ace 6670375: Missing unit test for 6607114 (Make JMXServiceURL reconstructible) Summary: Current setup doesn't allow two pushes with same CR number Reviewed-by: dfuchs ! src/share/classes/javax/management/remote/JMXServiceURL.java + test/javax/management/mxbean/JMXServiceURLTest.java Changeset: 5aaa9902102b Author: ksrini Date: 2008-03-06 07:51 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/5aaa9902102b 6596475: (launcher) javaw should call InitCommonControls Summary: javaw does not show error window after manifest changes. Reviewed-by: darcy ! make/java/jli/Makefile ! make/java/main/java/Makefile ! make/java/main/javaw/Makefile ! src/share/bin/java.c ! src/share/bin/java.h ! src/share/bin/main.c ! src/solaris/bin/java_md.c ! src/windows/bin/java_md.c Changeset: 1be19881457e Author: martin Date: 2008-03-09 21:56 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1be19881457e 4499288: (cs spec) Charset terminology problems Reviewed-by: mr, iris ! src/share/classes/java/nio/charset/Charset.java Changeset: b5da6145b050 Author: martin Date: 2008-03-09 21:56 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b5da6145b050 6671834: (str) Eliminate StringCoding.java compile warnings Reviewed-by: iris ! src/share/classes/java/lang/StringCoding.java Changeset: 7fb2ca1b52c8 Author: martin Date: 2008-03-09 21:56 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7fb2ca1b52c8 6633613: (str) StringCoding optimizations to avoid unnecessary array copies with Charset arg Reviewed-by: iris ! src/share/classes/java/lang/StringCoding.java Changeset: 1d12b16c7df9 Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1d12b16c7df9 6631966: (process) Raise Windows pipe buffer size an extra 24 bytes (win) Reviewed-by: alanb, iris ! src/windows/native/java/lang/ProcessImpl_md.c Changeset: b8fc7b5498dd Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b8fc7b5498dd 6632696: Writing to closed output files (writeBytes) leaks native memory (unix) Reviewed-by: alanb, iris ! src/share/native/java/io/io_util.c Changeset: 81f76ad22a63 Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/81f76ad22a63 6631362: Nuke io_util_md.c:handleFileSizeFD (win) Reviewed-by: alanb, iris ! src/windows/native/java/io/io_util_md.c ! src/windows/native/java/io/io_util_md.h Changeset: 307a6801a8e4 Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/307a6801a8e4 6631437: File{In,Out}putStream minor improvements to spec and stylistic improvements to code Reviewed-by: alanb, iris ! src/share/classes/java/io/FileInputStream.java ! src/share/classes/java/io/FileOutputStream.java Changeset: 73003d04c21f Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/73003d04c21f 6631352: File{OutputStream,Writer} should implement atomic append mode using FILE_APPEND_DATA (win) Reviewed-by: alanb, iris ! make/java/java/mapfile-vers ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/sun/nio/ch/FileChannelImpl.java ! src/share/native/java/io/io_util.c ! src/solaris/native/java/io/FileOutputStream_md.c ! src/windows/native/java/io/FileOutputStream_md.c ! src/windows/native/java/io/io_util_md.c + test/java/io/FileOutputStream/AtomicAppend.java Changeset: b5a587dd5af3 Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b5a587dd5af3 4960438: (process) Need IO redirection API for subprocesses Reviewed-by: alanb, iris ! src/share/classes/java/lang/Process.java ! src/share/classes/java/lang/ProcessBuilder.java ! src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java ! src/solaris/classes/java/io/FileDescriptor.java ! src/solaris/classes/java/lang/ProcessImpl.java ! src/solaris/classes/java/lang/UNIXProcess.java.linux ! src/solaris/classes/java/lang/UNIXProcess.java.solaris ! src/solaris/native/java/lang/UNIXProcess_md.c ! src/windows/classes/java/io/FileDescriptor.java ! src/windows/classes/java/lang/ProcessImpl.java ! src/windows/native/java/lang/ProcessImpl_md.c ! test/java/lang/ProcessBuilder/Basic.java Changeset: a3ae216ca35d Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/a3ae216ca35d 6642034: System.getProperty("os.name") returns Windows Vista on Windows Server 2008 (longhorn) Reviewed-by: iris ! src/windows/native/java/lang/java_props_md.c Changeset: bfed8f5f6345 Author: martin Date: 2008-03-10 14:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/bfed8f5f6345 6671051: (process) Runtime.exec() hangs if signalled during fork/exec Reviewed-by: iris ! src/solaris/native/java/lang/UNIXProcess_md.c Changeset: 03fddaf59499 Author: martin Date: 2008-03-10 15:07 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/03fddaf59499 6600143: Remove another 450 unnecessary casts Reviewed-by: alanb, iris, lmalvent, bristor, peterjones, darcy, wetmore ! make/tools/src/build/tools/jdwpgen/CommandNode.java ! make/tools/src/build/tools/jdwpgen/ConstantSetNode.java ! make/tools/src/build/tools/jdwpgen/RepeatNode.java ! src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java ! src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java ! src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java ! src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java ! src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java ! src/share/classes/com/sun/tools/example/debug/expr/LValue.java ! src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java ! src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java ! src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java ! src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java ! src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java ! src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java ! src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java ! src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/Commands.java ! src/share/classes/com/sun/tools/example/debug/tty/Env.java ! src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java ! src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java ! src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java ! src/share/classes/com/sun/tools/example/debug/tty/TTY.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java ! src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java ! src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/PlatformClasses.java ! src/share/classes/com/sun/tools/jdi/AbstractLauncher.java ! src/share/classes/com/sun/tools/jdi/ClassTypeImpl.java ! src/share/classes/com/sun/tools/jdi/ConcreteMethodImpl.java ! src/share/classes/com/sun/tools/jdi/EventSetImpl.java ! src/share/classes/com/sun/tools/jdi/JNITypeParser.java ! src/share/classes/com/sun/tools/jdi/MethodImpl.java ! src/share/classes/com/sun/tools/jdi/ObjectReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/PacketStream.java ! src/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java ! src/share/classes/com/sun/tools/jdi/SDE.java ! src/share/classes/com/sun/tools/jdi/StackFrameImpl.java ! src/share/classes/com/sun/tools/jdi/TargetVM.java ! src/share/classes/com/sun/tools/jdi/ThreadGroupReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java ! src/share/classes/com/sun/tools/jdi/VirtualMachineManagerImpl.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/ObjectStreamClass.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/Compiler.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/Package.java ! src/share/classes/java/lang/ref/Finalizer.java ! src/share/classes/java/lang/reflect/AccessibleObject.java ! src/share/classes/java/lang/reflect/Modifier.java ! src/share/classes/java/lang/reflect/Proxy.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/ServerSocket.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocksSocketImpl.java ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/java/nio/channels/spi/SelectorProvider.java ! src/share/classes/java/rmi/activation/ActivationGroupDesc.java ! src/share/classes/java/rmi/dgc/VMID.java ! src/share/classes/java/security/cert/TrustAnchor.java ! src/share/classes/java/security/cert/X509CertSelector.java ! src/share/classes/java/util/ArrayList.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/EnumMap.java ! src/share/classes/java/util/IdentityHashMap.java ! src/share/classes/java/util/JumboEnumSet.java ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/prefs/AbstractPreferences.java ! src/share/classes/java/util/regex/Matcher.java ! src/share/classes/javax/rmi/ssl/SslRMIClientSocketFactory.java ! src/share/classes/javax/rmi/ssl/SslRMIServerSocketFactory.java ! src/share/classes/javax/security/auth/kerberos/KerberosTicket.java ! src/share/classes/javax/security/auth/kerberos/KeyImpl.java ! src/share/classes/sun/misc/ClassFileTransformer.java ! src/share/classes/sun/misc/Cleaner.java ! src/share/classes/sun/misc/ExtensionDependency.java ! src/share/classes/sun/misc/GC.java ! src/share/classes/sun/misc/Launcher.java ! src/share/classes/sun/misc/PerformanceLogger.java ! src/share/classes/sun/misc/ProxyGenerator.java ! src/share/classes/sun/misc/URLClassPath.java ! src/share/classes/sun/net/NetProperties.java ! src/share/classes/sun/net/NetworkClient.java ! src/share/classes/sun/net/ftp/FtpClient.java ! src/share/classes/sun/net/spi/DefaultProxySelector.java ! src/share/classes/sun/net/www/MessageHeader.java ! src/share/classes/sun/net/www/MimeTable.java ! src/share/classes/sun/net/www/http/HttpClient.java ! src/share/classes/sun/net/www/http/KeepAliveCache.java ! src/share/classes/sun/net/www/http/KeepAliveStream.java ! src/share/classes/sun/net/www/http/KeepAliveStreamCleaner.java ! src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/net/www/protocol/jar/URLJarFile.java ! src/share/classes/sun/nio/ch/Reflect.java ! src/share/classes/sun/nio/ch/SocketAdaptor.java ! src/share/classes/sun/nio/ch/Util.java ! src/share/classes/sun/reflect/ClassDefiner.java ! src/share/classes/sun/reflect/MethodAccessorGenerator.java ! src/share/classes/sun/reflect/ReflectionFactory.java ! src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java ! src/share/classes/sun/reflect/misc/MethodUtil.java ! src/share/classes/sun/rmi/log/ReliableLog.java ! src/share/classes/sun/rmi/registry/RegistryImpl.java ! src/share/classes/sun/rmi/rmic/RemoteClass.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/RemoteClass.java ! src/share/classes/sun/rmi/runtime/Log.java ! src/share/classes/sun/rmi/server/LoaderHandler.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/classes/sun/rmi/server/MarshalOutputStream.java ! src/share/classes/sun/rmi/server/Util.java ! src/share/classes/sun/rmi/server/WeakClassHashMap.java ! src/share/classes/sun/rmi/transport/DGCClient.java ! src/share/classes/sun/rmi/transport/Target.java ! src/share/classes/sun/rmi/transport/Transport.java ! src/share/classes/sun/rmi/transport/proxy/CGIHandler.java ! src/share/classes/sun/rmi/transport/proxy/HttpSendSocket.java ! src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java ! src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java ! src/share/classes/sun/security/jgss/GSSManagerImpl.java ! src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java ! src/share/classes/sun/security/ssl/CipherSuite.java ! src/share/classes/sun/security/ssl/DHCrypt.java ! src/share/classes/sun/security/ssl/JsseJce.java ! src/share/classes/sun/security/ssl/ProtocolList.java ! src/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/share/classes/sun/security/ssl/SessionId.java ! src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java ! src/share/classes/sun/security/x509/CertificatePolicySet.java ! src/share/classes/sun/security/x509/X509Cert.java ! src/share/classes/sun/tools/jar/JarVerifierStream.java ! src/share/classes/sun/tools/native2ascii/N2AFilter.java ! src/solaris/classes/java/util/prefs/FileSystemPreferences.java ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java ! src/solaris/classes/sun/security/provider/NativePRNG.java ! src/windows/classes/sun/security/mscapi/SunMSCAPI.java Changeset: 3c75107c46a4 Author: lmalvent Date: 2008-03-10 23:13 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/3c75107c46a4 4981215: Publishing a port number for management console to access Reviewed-by: emcmanus, dfuchs ! src/share/classes/sun/management/ConnectorAddressLink.java ! src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java + test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java Changeset: c1a7b8f2c1bc Author: lmalvent Date: 2008-03-10 23:31 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/c1a7b8f2c1bc Merge Changeset: 7618b0596aab Author: lmalvent Date: 2008-03-10 23:51 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7618b0596aab Merge Changeset: 32334945b32e Author: lmalvent Date: 2008-03-11 01:20 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/32334945b32e 6655515: MBeans tab: operation return values of type Component displayed as String 6439590: MBeans tab: jconsole mbean tree not correctly refreshed 6446434: MBeans tab: Not possible to view MBean content before all MBeans have been initially loaded 6520144: Hard to find MBean Attributes, Operations, and Notifications in Java 6 jconsole 6522091: VMPanel.java contains non-ASCII character 6608334: JConsole fails to display MBean operation with return type 6611445: MBeans tab: MBean tree algorithm wrongly removes intermediate nodes. Reviewed-by: dfuchs, jfdenise ! src/share/classes/sun/tools/jconsole/MBeansTab.java ! src/share/classes/sun/tools/jconsole/MemoryPoolStat.java ! src/share/classes/sun/tools/jconsole/VMPanel.java ! src/share/classes/sun/tools/jconsole/inspector/OperationEntry.java ! src/share/classes/sun/tools/jconsole/inspector/TableSorter.java ! src/share/classes/sun/tools/jconsole/inspector/ThreadDialog.java ! src/share/classes/sun/tools/jconsole/inspector/Utils.java ! src/share/classes/sun/tools/jconsole/inspector/XDataViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XMBean.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanInfo.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanNotifications.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanOperations.java ! src/share/classes/sun/tools/jconsole/inspector/XObject.java ! src/share/classes/sun/tools/jconsole/inspector/XOperations.java ! src/share/classes/sun/tools/jconsole/inspector/XPlotter.java ! src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XSheet.java ! src/share/classes/sun/tools/jconsole/inspector/XTable.java ! src/share/classes/sun/tools/jconsole/inspector/XTextField.java ! src/share/classes/sun/tools/jconsole/inspector/XTextFieldEditor.java ! src/share/classes/sun/tools/jconsole/inspector/XTree.java Changeset: 7ddbf4c837b9 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7ddbf4c837b9 5080227: (coll spec) Bug in documentation for WeakHashMap Reviewed-by: dholmes ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/WeakHashMap.java Changeset: 72b9e96ddbe9 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/72b9e96ddbe9 6595669: regtest LinkedBlockingQueue/OfferRemoveLoops.java fails Reviewed-by: dholmes ! test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java Changeset: 3654a4ce7d54 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/3654a4ce7d54 6612102: (coll) IdentityHashMap.iterator().remove() might decrement size twice Reviewed-by: dholmes ! src/share/classes/java/util/IdentityHashMap.java + test/java/util/Map/LockStep.java Changeset: 9f7046dbd9ab Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9f7046dbd9ab 6602600: Fast removal of cancelled scheduled thread pool tasks Reviewed-by: alanb Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java + test/java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java + test/java/util/concurrent/ScheduledThreadPoolExecutor/Stress.java Changeset: 944d0faa0c50 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/944d0faa0c50 6609775: Reduce context switches in DelayQueue due to signalAll Reviewed-by: alanb Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/DelayQueue.java + test/java/util/concurrent/DelayQueue/Stress.java Changeset: ef7047a30d91 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/ef7047a30d91 6620549: ExecutorService#shutdown should clearly state that it does not block Reviewed-by: dholmes Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/ExecutorService.java ! src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java ! src/share/classes/java/util/concurrent/ThreadPoolExecutor.java Changeset: da49dce73a07 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/da49dce73a07 6625723: Excessive ThreadLocal storage used by ReentrantReadWriteLock Reviewed-by: dholmes Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java Changeset: e34975f797fc Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e34975f797fc 6633113: test/java/util/concurrent/SynchronousQueue/Fairness.java fails intermittently Reviewed-by: dholmes ! test/java/util/concurrent/SynchronousQueue/Fairness.java Changeset: f330b7834288 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f330b7834288 6583872: (coll) Direct uninformed users away from Vector/Hashtable Reviewed-by: dholmes ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/Vector.java Changeset: 0487ce0465d6 Author: martin Date: 2008-03-10 23:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/0487ce0465d6 6625725: (coll) modCount should not be volatile Reviewed-by: dholmes ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/IdentityHashMap.java ! src/share/classes/java/util/WeakHashMap.java Changeset: 278e769f9123 Author: alanb Date: 2008-03-11 14:42 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/278e769f9123 6448457: (ch) Channels.newOutputStream().write() does not write all data Reviewed-by: iris, sherman ! src/share/classes/java/nio/channels/Channels.java + test/java/nio/channels/Channels/ShortWrite.java Changeset: c97ff189e490 Author: alanb Date: 2008-03-11 14:49 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/c97ff189e490 6644607: (ch) test/java/nio/channels/SocketChannel/Connect.java throws UnknownHostException Reviewed-by: chegar ! test/java/nio/channels/TestUtil.java Changeset: 7b28e857d36c Author: alanb Date: 2008-03-13 19:29 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7b28e857d36c 6628575: (fc) lock/tryLock methods do not work with NFS servers that limit lock range to max file size Reviewed-by: sherman ! src/solaris/native/sun/nio/ch/FileChannelImpl.c Changeset: c73cb47fe250 Author: alanb Date: 2008-03-13 19:34 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/c73cb47fe250 6546113: (bf) CharSequence.slice() on wrapped CharSequence doesn't start at buffer position Reviewed-by: iris Contributed-by: roman.kennke at aicas.com ! src/share/classes/java/nio/StringCharBuffer.java ! test/java/nio/Buffer/StringCharBufferSliceTest.java Changeset: 547c14448b74 Author: sherman Date: 2008-03-14 14:21 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/547c14448b74 6514993: (prefs)prefs should use java.util.ServiceLoader to lookup service providers Reviewed-by: iris Contributed-by: xueming.shen at sun.com ! src/share/classes/java/util/prefs/Preferences.java Changeset: dd6765f87558 Author: tbell Date: 2008-03-17 22:56 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/dd6765f87558 Merge Changeset: e1b99dfabb04 Author: chegar Date: 2008-03-04 17:09 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e1b99dfabb04 6638560: APPCRASH in "SPNEGO_HTTP_AUTH/PROXY_FALLBACK" test case with 64 bit JDK on Win2008 x64, VinVista x64 Summary: Remove incorrect free from native code Reviewed-by: jccollet ! src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c Changeset: 02e18782ebe1 Author: weijun Date: 2008-03-05 09:52 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/02e18782ebe1 6641312: Fix krb5 codes indentation problems Reviewed-by: xuelei, valeriep, wetmore ! src/share/classes/sun/security/krb5/KrbTgsReq.java ! src/share/classes/sun/security/krb5/internal/APRep.java ! src/share/classes/sun/security/krb5/internal/APReq.java ! src/share/classes/sun/security/krb5/internal/ASRep.java ! src/share/classes/sun/security/krb5/internal/ASReq.java ! src/share/classes/sun/security/krb5/internal/Authenticator.java ! src/share/classes/sun/security/krb5/internal/AuthorizationData.java ! src/share/classes/sun/security/krb5/internal/AuthorizationDataEntry.java ! src/share/classes/sun/security/krb5/internal/EncAPRepPart.java ! src/share/classes/sun/security/krb5/internal/EncASRepPart.java ! src/share/classes/sun/security/krb5/internal/EncKDCRepPart.java ! src/share/classes/sun/security/krb5/internal/EncKrbCredPart.java ! src/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java ! src/share/classes/sun/security/krb5/internal/EncTGSRepPart.java ! src/share/classes/sun/security/krb5/internal/EncTicketPart.java ! src/share/classes/sun/security/krb5/internal/KDCRep.java ! src/share/classes/sun/security/krb5/internal/KDCReq.java ! src/share/classes/sun/security/krb5/internal/KRBCred.java ! src/share/classes/sun/security/krb5/internal/KrbCredInfo.java ! src/share/classes/sun/security/krb5/internal/ccache/Credentials.java ! src/windows/native/sun/security/krb5/NativeCreds.c Changeset: 6baf10020bb3 Author: jccollet Date: 2008-03-05 11:40 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/6baf10020bb3 6641309: Wrong Cookie separator used in HttpURLConnection Summary: Added a space to cookie separator. Generified the code and added tags. Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! test/java/net/CookieHandler/CookieManagerTest.java + test/sun/net/www/protocol/http/B6641309.java Changeset: 7360321c37e3 Author: weijun Date: 2008-03-05 21:55 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7360321c37e3 6648972: KDCReq.init always read padata Summary: PA-DATA is optional, only read it when it exists Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/internal/ETypeInfo2.java ! src/share/classes/sun/security/krb5/internal/KDCReq.java + test/sun/security/krb5/OptionPADataInKDCReq.java Changeset: d842462572a9 Author: weijun Date: 2008-03-05 22:15 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d842462572a9 6590930: reed/write does not match for ccache Summary: Add null-awareness to ccache read Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java ! src/share/classes/sun/security/krb5/internal/ccache/Credentials.java + test/sun/security/krb5/TimeInCCache.java Changeset: 66d2a8a11d59 Author: weijun Date: 2008-03-05 22:16 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/66d2a8a11d59 6664612: debug output leaked Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/AesDkCrypto.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/ArcFourCrypto.java Changeset: b6f7db7d8648 Author: jccollet Date: 2008-03-05 17:16 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b6f7db7d8648 6660405: HttpURLConnection returns the wrong InputStream Summary: Set inputStream back to null in disconnectInternal(). Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/sun/net/www/protocol/http/B6660405.java Changeset: 7ce5e8238b53 Author: jccollet Date: 2008-03-05 18:11 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7ce5e8238b53 6651717: Debug output statement left in MailToURLConnection Summary: Removed output statement, removed unused imports, added override tags. Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/mailto/MailToURLConnection.java Changeset: fa6948bdc4b0 Author: wetmore Date: 2008-03-06 10:35 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fa6948bdc4b0 6623830: SCCS cleanup has broken two regression tests. Reviewed-by: chegar ! test/java/net/ResponseCache/file2.1 Changeset: a100f699c155 Author: chegar Date: 2008-03-07 09:57 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/a100f699c155 6667108: typo in javadoc for java.net.Socket.getRemoteSocketAddress() Summary: Simple typo in method specification. Reviewed-by: jccollet ! src/share/classes/java/net/Socket.java Changeset: 328415dfe347 Author: chegar Date: 2008-03-07 11:30 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/328415dfe347 6615656: Removed unimplemented java.net methods Reviewed-by: jccollet ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/share/classes/java/net/NetworkInterface.java ! src/solaris/classes/java/net/PlainSocketImpl.java ! src/windows/classes/java/net/DualStackPlainSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainSocketImpl.java Changeset: 10d5be3e1fa8 Author: chegar Date: 2008-03-07 11:51 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/10d5be3e1fa8 6591358: documentation error in URLConnection.setRequestProperty("accept", ...) Summary: Simple doc change, "accept" -> "Accept" Reviewed-by: jccollet ! src/share/classes/java/net/URLConnection.java Changeset: 50a8b5ca8f39 Author: chegar Date: 2008-03-07 13:00 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/50a8b5ca8f39 6628576: InterfaceAddress.equals() NPE when broadcast field == null Summary: Update logic in equals to correctly handle nulls. Reviewed-by: michaelm ! src/share/classes/java/net/InterfaceAddress.java + test/java/net/InterfaceAddress/Equals.java Changeset: 1143fe7be725 Author: chegar Date: 2008-03-07 15:15 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1143fe7be725 6672682: Forgotten file from CR 6615656. Reviewed-by: michaelm ! src/windows/classes/java/net/PlainSocketImpl.java Changeset: 0bce46885f3a Author: chegar Date: 2008-03-07 07:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/0bce46885f3a 6628661: NTLM-authentication doesn't work with non-ASCII letters Summary: Use JNU_GetStringPlatformChars to convert jstrings to the locale specific native C strings Reviewed-by: michaelm ! src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c Changeset: 1b597b0efded Author: chegar Date: 2008-03-07 07:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1b597b0efded Merge Changeset: 67d13a20483a Author: chegar Date: 2008-03-07 17:17 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/67d13a20483a 6631048: Problem when writing on output stream of HttpURLConnection Summary: Fix up logic in ChunkedOutputStream.write Reviewed-by: jccollet ! src/share/classes/sun/net/www/http/ChunkedOutputStream.java ! test/sun/net/www/http/ChunkedOutputStream/Test.java Changeset: 344b9b281048 Author: chegar Date: 2008-03-07 17:18 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/344b9b281048 Merge Changeset: ac695089ccc5 Author: weijun Date: 2008-03-08 22:49 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/ac695089ccc5 6634644: broken fragment, should use @link Reviewed-by: mullan ! src/share/classes/javax/security/cert/X509Certificate.java Changeset: 2c37083730b1 Author: weijun Date: 2008-03-08 22:51 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/2c37083730b1 6643094: Test on keytool -startdate forgets about December Reviewed-by: xuelei ! test/sun/security/tools/keytool/StartDateTest.java Changeset: 06eb4d224a6b Author: weijun Date: 2008-03-08 22:52 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/06eb4d224a6b 6597349: KeyStore.getCertificateChain() may not return the full chain Reviewed-by: mullan ! src/share/classes/java/security/KeyStore.java Changeset: f6f456d2fabf Author: weijun Date: 2008-03-12 09:32 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f6f456d2fabf 6673164: dns_fallback parse error Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/Config.java + test/sun/security/krb5/DnsFallback.java Changeset: a43ebfd8915a Author: wetmore Date: 2008-03-11 23:37 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/a43ebfd8915a Merge ! src/share/classes/java/net/Socket.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Changeset: 6068b786e186 Author: mullan Date: 2008-03-13 13:29 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/6068b786e186 6611991: Add support for parsing RFC4514 DNs to X500Principal Summary: Added new test and made one code change to escape null characters. Reviewed-by: vinnie ! src/share/classes/sun/security/x509/AVA.java + test/javax/security/auth/x500/X500Principal/RFC4514.java Changeset: 32e7ba670b0e Author: mullan Date: 2008-03-14 10:33 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/32e7ba670b0e Merge Changeset: 7dc3b56f220f Author: xuelei Date: 2008-03-15 13:43 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7dc3b56f220f 6648816: REGRESSION: setting -Djava.security.debug=failure result in NPE in ACC Summary: unchecking the null pointer of the debug handle Reviewed-by: mullan, weijun ! src/share/classes/java/security/AccessControlContext.java + test/java/security/AccessControlContext/FailureDebugOption.java Changeset: d69e411f0711 Author: xuelei Date: 2008-03-16 01:37 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d69e411f0711 6618387: SSL client sessions do not close cleanly. A TCP reset occurs instead of a close_notify alert. Summary: closeIdelConnection() does not query the cached connection correctly. Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java + test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java Changeset: 73f50a1c8634 Author: xuelei Date: 2008-03-16 23:46 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/73f50a1c8634 6542796: CPU issue with JSSE and tomcat Summary: record length count error Reviewed-by: weijun ! src/share/classes/sun/security/ssl/InputRecord.java Changeset: 280a7b75cd39 Author: xuelei Date: 2008-03-17 03:11 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/280a7b75cd39 6447412: Issue with socket.close() for ssl sockets when poweroff on other system Summary: Support SSL sockets SOLINGER Reviewed-by: chegar ! src/share/classes/sun/security/ssl/Handshaker.java ! src/share/classes/sun/security/ssl/OutputRecord.java ! src/share/classes/sun/security/ssl/SSLSocketImpl.java + test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java Changeset: f6905d8eee6e Author: wetmore Date: 2008-03-06 16:06 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f6905d8eee6e 6578538: com.sun.crypto.provider.SunJCE instance leak using KRB5 and LoginContext Reviewed-by: valeriep ! src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java + test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java Changeset: 1cb78400acce Author: wetmore Date: 2008-03-17 11:53 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1cb78400acce Merge Changeset: 0f030deba7df Author: wetmore Date: 2008-03-17 12:27 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/0f030deba7df Merge Changeset: 9ae056d2cffd Author: tbell Date: 2008-03-17 23:03 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9ae056d2cffd Merge Changeset: e0d783c556fc Author: son Date: 2008-03-13 15:36 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e0d783c556fc 6595651: Focus transfers broken for applications embedding AWT across processes Summary: Now we allow cross-process focus requests if focus is in embedder's process. Reviewed-by: ant ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Frame.cpp ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Toolkit.h Changeset: 367edeff526e Author: son Date: 2008-03-13 16:12 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/367edeff526e 6616095: AWT's WindowDisposerRecord keeps AppContext alive too long Summary: WindowDisposerRecord should not keep strong reference to AppContext. Reviewed-by: art ! src/share/classes/java/awt/Window.java Changeset: e4e71142754b Author: son Date: 2008-03-13 16:19 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e4e71142754b 6632140: minor refactoring for XWM Summary: code cleanup and generificaion for XWM Reviewed-by: anthony ! src/solaris/classes/sun/awt/X11/XFramePeer.java ! src/solaris/classes/sun/awt/X11/XNETProtocol.java ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11/XWM.java Changeset: dc7dfc7d15ba Author: son Date: 2008-03-13 16:27 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/dc7dfc7d15ba 6592751: EmbeddedFrame disposal is fragile and breaks clean AppContext termination Summary: AppContext.dispose() should be ready to get exceptions during disposal of toplevels. Also now we mark windows peers as destroyed when native object has been destroyed. Reviewed-by: art ! src/share/classes/sun/awt/AppContext.java ! src/windows/classes/sun/awt/windows/WObjectPeer.java ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Object.cpp ! src/windows/native/sun/windows/awt_Object.h Changeset: 619d2d592b88 Author: son Date: 2008-03-13 16:32 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/619d2d592b88 6603256: Startup: Defer initialization of DropTarget's flavorMap Summary: SystemFlavorMap is lazily initialized now. Reviewed-by: uta ! src/share/classes/java/awt/datatransfer/SystemFlavorMap.java ! src/share/classes/java/awt/dnd/DropTarget.java Changeset: f3377ab93ee8 Author: son Date: 2008-03-13 16:42 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f3377ab93ee8 6607163: Linux: Cannot copy image from Java to OpenOffice Summary: TARGETS should have type ATOM Reviewed-by: denis ! src/solaris/classes/sun/awt/X11/XSelection.java Changeset: bbd8e20d5052 Author: son Date: 2008-03-13 16:47 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/bbd8e20d5052 6636369: sun.awt.datatransfer.DataTransferer contains double-check idiom Summary: double-check has been removed Reviewed-by: dav ! src/share/classes/sun/awt/datatransfer/DataTransferer.java Changeset: c9ee9428aea9 Author: son Date: 2008-03-13 16:51 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/c9ee9428aea9 6636331: ConcurrentModificationException in AppContext code Summary: Added synchronization to AppContext.getAppContexts() Reviewed-by: art ! src/share/classes/sun/awt/AppContext.java Changeset: 86a5780cad99 Author: son Date: 2008-03-13 16:54 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/86a5780cad99 6636370: minor corrections and simplification of code in AppContext Summary: mainAppContext, isDisposed, and numAppContexts has beem made volatile. mostRecentThreadAppContext has been rewritten using ThreadLocal. Reviewed-by: art ! src/share/classes/sun/awt/AppContext.java Changeset: 026144f0d26a Author: son Date: 2008-03-13 16:56 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/026144f0d26a 6636368: XAtom contains unused code Summary: unused code has been removed Reviewed-by: dcherepanov ! src/solaris/classes/sun/awt/X11/XAtom.java Changeset: 63f02cc8ff3d Author: son Date: 2008-03-13 17:04 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/63f02cc8ff3d 6645885: small refactoring for XContentWindow Summary: move createContent() method from XDecoratedPeer to XContentWindow, so only XContentWindow keep information about the way we position it. Reviewed-by: anthony ! src/solaris/classes/sun/awt/X11/XContentWindow.java ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Changeset: d9fb87af8b07 Author: son Date: 2008-03-13 17:08 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d9fb87af8b07 6645856: static field XWindowPeer.defaultFont hides XWindow.defaultFont Summary: unnedded code has been removed. Added getter for XWindow.defaultFont to initialize it lazily. Reviewed-by: dav ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/solaris/classes/sun/awt/X11/XMenuItemPeer.java ! src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java ! src/solaris/classes/sun/awt/X11/XTrayIconPeer.java ! src/solaris/classes/sun/awt/X11/XWindow.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java Changeset: 176e1fe7dead Author: son Date: 2008-03-13 17:14 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/176e1fe7dead 6538066: XSelection should be more passive Summary: Now only XClipboard know about XSelection, and XSelection knows nothing about XClipboard. Reviewed-by: uta, denis ! src/solaris/classes/sun/awt/X11/MotifDnDConstants.java ! src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java + src/solaris/classes/sun/awt/X11/OwnershipListener.java ! src/solaris/classes/sun/awt/X11/XClipboard.java ! src/solaris/classes/sun/awt/X11/XDnDConstants.java ! src/solaris/classes/sun/awt/X11/XSelection.java Changeset: fa0dc97ef9a0 Author: dcherepanov Date: 2008-03-14 17:23 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fa0dc97ef9a0 6522731: Location of the frame changes,when the frame is resized & non-resized. Summary: XMoveWindow() should use shell's location Reviewed-by: son ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Changeset: 296b6e29a99d Author: dcherepanov Date: 2008-03-14 18:27 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/296b6e29a99d 6612497: api/java_awt/Container/index.html#isAncestorOf Container2019 hangs since JDK 7 b15 Summary: Partial rollback changes for 6567564 in the Component.getGC method Reviewed-by: art, son ! src/share/classes/java/awt/Component.java Changeset: 5ac897d182a6 Author: dcherepanov Date: 2008-03-14 18:50 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/5ac897d182a6 6603010: Out-of-process Java Plug-In non-functional or barely functional on X11 platforms Summary: AWT XEmbed shouldn't use _SUN_XEMBED_START message Reviewed-by: art, son ! src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java ! src/solaris/classes/sun/awt/X11/XEmbedHelper.java ! src/solaris/classes/sun/awt/X11/XEmbedServerTester.java Changeset: 92e3f57c933b Author: dcherepanov Date: 2008-03-14 20:40 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/92e3f57c933b 6524352: support for high-resolution mouse wheel Summary: added support for high-resolution mouse wheel Reviewed-by: dav, son ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/event/MouseWheelEvent.java ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h + test/java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java Changeset: 15ba7093f8e6 Author: dcherepanov Date: 2008-03-14 22:00 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/15ba7093f8e6 6578583: Regression: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. Summary: WS_DISABLED style should be used to fix some modality bugs Reviewed-by: art, son ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awt_Window.h + test/java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java + test/java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java + test/java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java Changeset: 9f51e4e1251e Author: anthony Date: 2008-03-18 12:04 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9f51e4e1251e 6608764: PropertyChangeListeners machinery should have a better locking scheme Summary: Change to use a private final object java.awt.Component.changeSupportLock for locking purposes instead of using this Reviewed-by: son, ant ! src/share/classes/java/awt/Component.java Changeset: 9b6848cf363c Author: anthony Date: 2008-03-18 13:53 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9b6848cf363c 6613927: Compilation of splashscreen png library failed on Ubuntu 7.04 (64bit) Summary: The macro PNG_NO_MMX_CODE should be defined when compiling on 64bit Linux Reviewed-by: yan, avu ! make/sun/splashscreen/Makefile Changeset: fd7f2562ea00 Author: anthony Date: 2008-03-18 14:10 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fd7f2562ea00 6607660: java.awt.Container.getMouseEventTargetImpl should be invoked while holding the TreeLock Summary: The body of the method has been wrapped into the synchronized (getTreeLock()) { } block. Reviewed-by: son, art ! src/share/classes/java/awt/Container.java Changeset: e8b40b676b89 Author: anthony Date: 2008-03-18 14:20 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e8b40b676b89 6637796: setBounds doesn't enlarge Component Summary: Added the areBoundsValid() method that verifies whether the current bounds of the component are valid. Using the isValid() method for this purpose previously was incorrect. Reviewed-by: son, art ! src/share/classes/java/awt/Component.java + test/java/awt/Mixing/ValidBounds.java Changeset: 9306c5d6344f Author: anthony Date: 2008-03-18 14:36 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9306c5d6344f 6304277: PIT: Adding a TrayIcon closes a SplashScreen on Solaris but not on Win32 Summary: The Window.closeSplashScreen() method now verified the boolean flag isTrayIconWindow, and returns if it is true. Reviewed-by: son, dcherepanov ! src/share/classes/java/awt/Window.java Changeset: fc0164db7a3b Author: anthony Date: 2008-03-18 15:07 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fc0164db7a3b 6581927: REG : Non focusable frame can be minimized to very small & Frame icon can be seen on frame buttons. Summary: The SWP_NOSENDCHANGING flag should not be passed to the ::SetWindowPos() WinAPI function when we receive the WM_MOUSEMOVE message while manually handling the resizing of non-focusable frames. Reviewed-by: son, ant ! src/windows/native/sun/windows/awt_Frame.cpp + test/java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java Changeset: 8a57a0be2a97 Author: anthony Date: 2008-03-18 16:19 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/8a57a0be2a97 6589527: Window and Frame instances can hide their "Applet Warning" Summary: Additional constraints have been added for the setBounds() operation. Reviewed-by: son, art ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java ! src/solaris/classes/sun/awt/X11/XDialogPeer.java ! src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java ! src/solaris/classes/sun/awt/X11/XFramePeer.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java ! src/solaris/classes/sun/awt/motif/MDialogPeer.java ! src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java ! src/solaris/classes/sun/awt/motif/MFramePeer.java ! src/solaris/classes/sun/awt/motif/MWindowPeer.java ! src/windows/classes/sun/awt/windows/WDialogPeer.java ! src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java ! src/windows/classes/sun/awt/windows/WFramePeer.java ! src/windows/classes/sun/awt/windows/WWindowPeer.java ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awt_Window.h Changeset: 241fd18949db Author: anthony Date: 2008-03-20 11:09 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/241fd18949db 4993545: NativeInLightFixer adds asynchronousity Summary: All the hooks related to the NativeInLightFixer have been moved to the HW/LW mixing handling methods. The NativeInLightFixer itself has been removed. Reviewed-by: son, alexp ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java Changeset: 51c761339b1c Author: ant Date: 2008-03-19 16:23 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/51c761339b1c 6567410: PIT : java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java fails Summary: A filter flag has been added to the HCBT focus hook. Reviewed-by: dcherepanov ! src/windows/native/sun/windows/awt_Window.cpp Changeset: 810904060acf Author: ant Date: 2008-03-20 14:26 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/810904060acf Merge Changeset: 92e9ac30618a Author: son Date: 2008-03-20 16:21 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/92e9ac30618a 6630878: clean target in sun/xawt is incomplete Summary: clean target should remove .gen_icons Reviewed-by: yan ! make/sun/xawt/Makefile Changeset: 82233ac3d09f Author: ant Date: 2008-03-20 18:06 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/82233ac3d09f 6598089: JDK 7: AWT often goes into busy loop when showing dialog Summary: Preventing focus from getting in an endless loop. Reviewed-by: son ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java + test/java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java Changeset: dbff1fcf1767 Author: ant Date: 2008-03-21 09:54 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/dbff1fcf1767 6599270: Using EmbeddedFrame in SWT leads to a hang Summary: Excluding EmbeddedFrame from the workaround of activating a toplevel in not foreground process. Reviewed-by: son ! src/windows/native/sun/windows/awt_Frame.cpp Changeset: 0f955581dc0b Author: yan Date: 2008-03-24 06:33 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/0f955581dc0b Merge Changeset: f1c168caf94f Author: ohair Date: 2008-03-18 11:03 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f1c168caf94f 6674226: Warning errors in freetypecheck Summary: Just corrected some C code to remove warning errors from gcc. Reviewed-by: tbell ! make/tools/freetypecheck/freetypecheck.c Changeset: e564dc9241e5 Author: ohair Date: 2008-03-18 11:04 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e564dc9241e5 6611788: chmod a+x bin/winver.exe in make/tools/winver/Makefile fails on a read only file system Summary: Tell Mercurial this file has execute permission. Reviewed-by: tbell Changeset: ea98209ac149 Author: ohair Date: 2008-03-18 11:06 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/ea98209ac149 6674232: OPENJDK=false is same as OPENJDK=true Summary: OPENJDK should be empty (undefined) or "true". Reviewed-by: tbell ! make/common/Defs.gmk Changeset: e98ce66d7630 Author: ohair Date: 2008-03-18 11:08 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e98ce66d7630 6654458: /java/devtools findbugs doesn't work on windows Summary: Changes to both ant and findbugs version checking. Reviewed-by: tbell ! make/common/shared/Defs-utils.gmk ! make/common/shared/Defs.gmk ! make/common/shared/Sanity.gmk Changeset: 9ae5ccf6891c Author: ohair Date: 2008-03-19 13:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9ae5ccf6891c 6611629: Avoid hardcoded cygwin paths for memory detection Summary: Use free with sygwin, mem or systeminfo otherwise, to get MB_OF_MEMORY on windows. Reviewed-by: tbell ! make/common/shared/Platform.gmk Changeset: 9b0d53aa8549 Author: ohair Date: 2008-03-25 14:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9b0d53aa8549 6627817: Remove ^M characters in all files (Makefiles too) Summary: Some files included the use of the ^M character, which has been deleted. Reviewed-by: xdono ! make/common/shared/Sanity.gmk ! make/docs/CORE_PKGS.gmk ! src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties ! src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties ! src/share/classes/com/sun/org/apache/xml/internal/security/resource/config.dtd ! src/share/classes/com/sun/org/apache/xml/internal/security/resource/config.xml ! src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/etsi.xsd ! src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties ! src/share/classes/javax/swing/plaf/synth/doc-files/synth.dtd ! src/share/classes/javax/swing/plaf/synth/package.html ! src/share/demo/jfc/Notepad/resources/Notepad.properties ! src/share/sample/vm/clr-jvm/Makefile ! src/share/sample/vm/clr-jvm/README.txt ! src/share/sample/vm/clr-jvm/invoker.cs ! src/share/sample/vm/jvm-clr/README.txt ! src/share/sample/vm/jvm-clr/invoked.cs Changeset: 40b6f7fcac38 Author: ohair Date: 2008-03-26 17:48 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/40b6f7fcac38 Merge Changeset: 75fca0b0ab83 Author: xdono Date: 2008-03-27 12:09 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/75fca0b0ab83 Merge Changeset: 6e25a8a3f8c6 Author: xdono Date: 2008-04-09 11:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/6e25a8a3f8c6 Added tag jdk7-b25 for changeset 75fca0b0ab83 ! .hgtags Changeset: 0d4923ce2707 Author: emcmanus Date: 2008-03-19 15:17 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/0d4923ce2707 6675768: NoSuchElementException thrown in RequiredModelMBean when tracing enabled Summary: Rewrite logging in RequiredModelMBean.addAttributeChangeNotificationListener Reviewed-by: dfuchs ! src/share/classes/javax/management/modelmbean/RequiredModelMBean.java + test/javax/management/modelmbean/LoggingExceptionTest.java Changeset: f5853d8dab12 Author: mchung Date: 2008-03-18 11:53 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f5853d8dab12 6658779: Regression: HotspotDiagnosticMXBean.getDiagnosticOptions() throws NullPointerException Summary: Add a null check for the VM option string Reviewed-by: alanb, tbell ! src/share/classes/sun/management/Flag.java + test/com/sun/management/HotSpotDiagnosticMXBean/GetDiagnosticOptions.java Changeset: b413d5d6cedc Author: mchung Date: 2008-03-18 12:53 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b413d5d6cedc 6672804: First line in com/sun/management/package.html is broken Summary: Fixed the typo in package.html Reviewed-by: jjh ! src/share/classes/com/sun/management/package.html Changeset: 3e2a5ab9c131 Author: mchung Date: 2008-03-19 11:13 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/3e2a5ab9c131 Merge Changeset: 9a97ca4eb8b7 Author: emcmanus Date: 2008-03-21 09:49 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9a97ca4eb8b7 6649542: Document explicitly in registerMBean etc that MBeanServerNotification is emitted Summary: Make spec more readable by adding cross-references. Suggested by Andrew Haley. Reviewed-by: dfuchs ! src/share/classes/javax/management/MBeanServer.java Changeset: 01f7eeea81f1 Author: emcmanus Date: 2008-03-21 18:07 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/01f7eeea81f1 6643627: JMX source code includes incorrect Java code Summary: javac compiler bug accepts incorrect code; JMX code inadvertently has such code Reviewed-by: dfuchs ! src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java ! src/share/classes/java/beans/MetaData.java Changeset: 75b405bff406 Author: tbell Date: 2008-03-27 10:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/75b405bff406 Merge Changeset: 7dd94e5bbec4 Author: dcubed Date: 2008-03-24 14:31 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7dd94e5bbec4 6239043: 4/4 TransformerManagementThreadAddTests.java failed Summary: Clear fCheckedTransformers in order to properly record transformer() call data. Reviewed-by: sspitsyn ! test/java/lang/instrument/TransformerManagementThreadAddTests.java Changeset: d3dc2ede62ed Author: dcubed Date: 2008-03-24 14:39 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d3dc2ede62ed 4926961: 4/4 TransformerManagementThreadRemoveTests hangs Summary: Changes motivated by Effective Java - Item 48 & Item 51. Reviewed-by: sspitsyn ! test/java/lang/instrument/TransformerManagementThreadAddTests.java ! test/java/lang/instrument/TransformerManagementThreadRemoveTests.java Changeset: bca8bf23ac59 Author: dcubed Date: 2008-03-24 15:05 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/bca8bf23ac59 5088398: 3/2 java.lang.instrument TCK test deadlock (test11) Summary: Add regression test for single-threaded bootstrap classloader. Reviewed-by: sspitsyn + test/java/lang/instrument/ParallelTransformerLoader.sh + test/java/lang/instrument/ParallelTransformerLoaderAgent.java + test/java/lang/instrument/ParallelTransformerLoaderApp.java + test/java/lang/instrument/TestClass1.java + test/java/lang/instrument/TestClass2.java + test/java/lang/instrument/TestClass3.java Changeset: 114854ebaa21 Author: dcubed Date: 2008-03-24 15:14 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/114854ebaa21 6274276: 3/2 java.lang.instrument JAR manifest processing does not remove spaces from class names Summary: Attribute values should be extracted without leading or trailing whitespace. Reviewed-by: ohair, sspitsyn ! src/share/instrument/JarFacade.c + test/java/lang/instrument/ManifestTest.sh + test/java/lang/instrument/ManifestTestAgent.java + test/java/lang/instrument/ManifestTestApp.java Changeset: d4cd9e6a72da Author: dcubed Date: 2008-03-24 15:20 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/d4cd9e6a72da 6289149: 4/4 Java Agent will pick wrong execution path while attaching Summary: Check for a declared premain() or agentmain() method before an inherited one Reviewed-by: sspitsyn ! src/share/classes/sun/instrument/InstrumentationImpl.java ! test/java/lang/instrument/PremainClass/DummyMain.java + test/java/lang/instrument/PremainClass/InheritAgent0001.java + test/java/lang/instrument/PremainClass/InheritAgent0010.java + test/java/lang/instrument/PremainClass/InheritAgent0011.java + test/java/lang/instrument/PremainClass/InheritAgent0100.java + test/java/lang/instrument/PremainClass/InheritAgent0101.java + test/java/lang/instrument/PremainClass/InheritAgent0110.java + test/java/lang/instrument/PremainClass/InheritAgent0111.java + test/java/lang/instrument/PremainClass/InheritAgent1000.java + test/java/lang/instrument/PremainClass/InheritAgent1001.java + test/java/lang/instrument/PremainClass/InheritAgent1010.java + test/java/lang/instrument/PremainClass/InheritAgent1011.java + test/java/lang/instrument/PremainClass/InheritAgent1100.java + test/java/lang/instrument/PremainClass/InheritAgent1101.java + test/java/lang/instrument/PremainClass/InheritAgent1110.java + test/java/lang/instrument/PremainClass/InheritAgent1111.java + test/java/lang/instrument/PremainClass/NoPremainAgent.java + test/java/lang/instrument/PremainClass/NoPremainAgent.sh + test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.java + test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.sh Changeset: 8c1c6c50dd36 Author: dcubed Date: 2008-03-24 15:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/8c1c6c50dd36 6487488: 3/5 TEST_BUG: Something in test/java/lang/instrument creates a copy of an SCCS dir Summary: Only copy Java source files from ilib and bootreporter. Reviewed-by: sspitsyn ! test/java/lang/instrument/MakeJAR2.sh Changeset: e6e301984a4a Author: dcubed Date: 2008-03-24 15:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e6e301984a4a 6491461: 3/3 TEST: java/lang/instrument .sh tests need to use $TESTVMOPTS in their java commands Summary: Add ${TESTVMOPTS} to java test execution command(s). Reviewed-by: sspitsyn ! test/java/lang/instrument/BootClassPath/BootClassPathTest.sh ! test/java/lang/instrument/PremainClass/PremainClassTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh ! test/java/lang/instrument/appendToClassLoaderSearch/run_tests.sh Changeset: ebe8adae32b9 Author: dcubed Date: 2008-03-24 16:04 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/ebe8adae32b9 6528548: 4/4 NativeMethodPrefixAgent.java times out intermittently in nightly Summary: Increase timeouts for tasks that take > 10 seconds on a 4-way Ultra-80 with all local resources. Reviewed-by: sspitsyn ! test/java/lang/instrument/BootClassPath/BootClassPathTest.sh ! test/java/lang/instrument/NativeMethodPrefixAgent.java ! test/java/lang/instrument/RetransformAgent.java ! test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/run_tests.sh Changeset: 31959ddaf501 Author: dcubed Date: 2008-03-24 16:11 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/31959ddaf501 6545149: 4/4 JLI Instrumentation.redefineClasses SIGSEGVs on java/lang/Thread Summary: Add regression test for redefining class with native methods. Reviewed-by: sspitsyn + test/java/lang/instrument/RedefineClassWithNativeMethod.sh + test/java/lang/instrument/RedefineClassWithNativeMethodAgent.java + test/java/lang/instrument/RedefineClassWithNativeMethodApp.java Changeset: 719789c7132c Author: dcubed Date: 2008-03-24 16:23 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/719789c7132c 6547358: 2/2 j.l.i.: manifest attribute 'Can-Retransform-Classes' is ignored by isRetransformClassesSupported() Summary: isRetransformClassesSupported() should return the capability rather than give the agent the capability Reviewed-by: ohair, sspitsyn ! src/share/instrument/JPLISAgent.c Changeset: ba825e4b1b8b Author: dcubed Date: 2008-03-24 16:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/ba825e4b1b8b 6547500: 2/2 j.l.i.: .retransformClasses throws unexpected InternalError Summary: retransformClasses() should catch both an empty classes array and a classes array that contains a NULL element. Reviewed-by: ohair, sspitsyn ! src/share/instrument/JPLISAgent.c Changeset: 823abb444593 Author: dcubed Date: 2008-03-24 16:59 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/823abb444593 6642405: 4/4 src/share/instrument/JPLISAgent.c line 286: "==" found where assignment "=" expected Summary: Fix incorrect variable assignment in initializeJPLISAgent(). Reviewed-by: ohair, sspitsyn ! src/share/instrument/JPLISAgent.c Changeset: 9f75a46fad8b Author: dcubed Date: 2008-03-24 17:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9f75a46fad8b 6572160: 3/3 Instrumentation.getObjectSize triggers JVM crash in JPLISAssert in shutdown Summary: Tolerate JVMTI_ERROR_WRONG_PHASE return codes so that JLI methods can be called to the end of VM's life. Reviewed-by: ohair, sspitsyn ! src/share/instrument/InvocationAdapter.c ! src/share/instrument/JPLISAgent.c ! src/share/instrument/JPLISAgent.h ! src/share/instrument/Reentrancy.c ! src/share/instrument/Utilities.c + test/java/lang/instrument/StressGetObjectSizeApp.java + test/java/lang/instrument/StressGetObjectSizeTest.sh Changeset: 9a804b6297c3 Author: dcubed Date: 2008-03-24 17:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/9a804b6297c3 6655234: 4/4 j.l.i.: setNativeMethodPrefix does not document that prefix string can be null Summary: Clarify wording for 'prefix' parameter to setNativeMethodPrefix(). Reviewed-by: sspitsyn ! src/share/classes/java/lang/instrument/Instrumentation.java Changeset: 1f45ae5ea94a Author: dcubed Date: 2008-03-24 17:20 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/1f45ae5ea94a 6667089: 3/3 multiple redefinitions of a class break reflection Summary: Add regression test for multiple redefinitions of a class break reflection. Reviewed-by: sspitsyn + test/java/lang/instrument/RedefineMethodAddInvoke.sh + test/java/lang/instrument/RedefineMethodAddInvokeAgent.java + test/java/lang/instrument/RedefineMethodAddInvokeApp.java + test/java/lang/instrument/RedefineMethodAddInvokeTarget.java + test/java/lang/instrument/RedefineMethodAddInvokeTarget_1.java + test/java/lang/instrument/RedefineMethodAddInvokeTarget_2.java Changeset: 7bf5f01e419d Author: dcubed Date: 2008-03-26 20:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/7bf5f01e419d 6679866: 3/2 portability issues with JLI-batch-200803 on Win* Summary: Make minor tweaks to the fix for 6274276 to make the Win* compiler happy... Reviewed-by: sspitsyn, ohair ! src/share/instrument/JarFacade.c Changeset: 52c76fc0a3a9 Author: dcubed Date: 2008-03-27 14:15 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/52c76fc0a3a9 Merge Changeset: 2965459a8ee7 Author: emcmanus Date: 2008-04-01 14:45 +0200 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/2965459a8ee7 6610917: Define a generic NotificationFilter Summary: Adds javax.management.QueryNotificationFilter Reviewed-by: dfuchs ! src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java + src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java ! src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java ! src/share/classes/com/sun/jmx/mbeanserver/Repository.java ! src/share/classes/com/sun/jmx/mbeanserver/Util.java ! src/share/classes/javax/management/ObjectName.java + src/share/classes/javax/management/QueryNotificationFilter.java + test/javax/management/query/QueryNotifFilterTest.java Changeset: a8d6215fa863 Author: weijun Date: 2008-03-20 11:57 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/a8d6215fa863 6670362: HTTP/SPNEGO should work across realms Reviewed-by: valeriep ! src/share/classes/sun/net/www/protocol/http/NegotiatorImpl.java Changeset: 74bc85c0f2a9 Author: valeriep Date: 2008-03-20 16:02 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/74bc85c0f2a9 4898461: Support for ECB and CBC/PKCS5Padding Summary: Add support for ECB mode and PKCS5Padding Reviewed-by: andreas ! src/share/classes/sun/security/pkcs11/P11Cipher.java ! src/share/classes/sun/security/pkcs11/SunPKCS11.java + test/sun/security/pkcs11/Cipher/TestSymmCiphers.java Changeset: 66c2b0cfc896 Author: valeriep Date: 2008-03-20 17:17 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/66c2b0cfc896 6572331: regression: cipher.wrap operation fails with CKR_ATTRIBUTE_VALUE_INVALID Summary: Check supported key size range and use encryption if needed Reviewed-by: andreas ! src/share/classes/sun/security/pkcs11/P11KeyGenerator.java ! src/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java + test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java Changeset: 84aced25a346 Author: valeriep Date: 2008-03-20 18:41 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/84aced25a346 6599979: KeyStore.setEntry/setKeyEntry() do not override existing entry for secret key objects Summary: Override existing secret key entry when setEntry/setKeyEntry() is called Reviewed-by: andreas ! src/share/classes/sun/security/pkcs11/P11KeyStore.java ! src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java + test/sun/security/pkcs11/KeyStore/SecretKeysBasic.java + test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh Changeset: 05afbed1dc4f Author: valeriep Date: 2008-03-21 14:45 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/05afbed1dc4f Merge Changeset: b22cbc65a360 Author: wetmore Date: 2008-03-28 12:56 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b22cbc65a360 Merge Changeset: 8805ae9d160c Author: valeriep Date: 2008-03-31 11:09 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/8805ae9d160c 6681652: Two new regression test failures in pkcs11 code Summary: Fixed the test to not assume SunJCE provider being the provider for DES Reviewed-by: wetmore ! test/javax/crypto/Cipher/TestGetInstance.java Changeset: e1bf7407c933 Author: wetmore Date: 2008-03-31 13:27 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e1bf7407c933 6469580: 1.5.0_08 JVM crashes in SignatureHandlerLibrary::add on Fujitsu Primepower platform Reviewed-by: andreas, valeriep, wetmore Contributed-by: chris.phillips at sun.com ! src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c Changeset: 17e93b7fb97d Author: valeriep Date: 2008-03-31 16:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/17e93b7fb97d 6682411: JCK test failed w/ ArrayIndexOutOfBoundException (-1) when decrypting with no data Summary: Fixed PKCS5Padding class with additional check and throw BadPaddingException if the check failed Reviewed-by: wetmore ! src/share/classes/sun/security/pkcs11/P11Cipher.java Changeset: c063b7fb55f7 Author: valeriep Date: 2008-03-31 16:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/c063b7fb55f7 6682417: JCK test failed w/ ProviderException when decrypted data is not multiple of blocks Summary: Check for CKR_ENCRYPTED_DATA_LEN_RANGE and throw IllegalBlockSizeException Reviewed-by: wetmore ! src/share/classes/sun/security/pkcs11/P11Cipher.java Changeset: 99b3301fc27c Author: valeriep Date: 2008-03-31 16:50 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/99b3301fc27c Merge Changeset: df5d7e6ac15e Author: xuelei Date: 2008-04-02 22:44 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/df5d7e6ac15e 6668231: Presence of a critical subjectAltName causes JSSE's SunX509 to fail trusted checks Summary: make the critical extension known to end entity checker. Reviewed-by: wetmore, mullan ! src/share/classes/sun/security/validator/EndEntityChecker.java + test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java + test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/crisubn.jks + test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/trusted.jks Changeset: b70fc43afb8c Author: wetmore Date: 2008-04-06 10:15 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b70fc43afb8c 6683078: Update JCE framework and provider builds to work on read-only filesystems 6644659: Error in default target of make/javax/crypto in OpenJDK build Reviewed-by: valeriep, ohair ! make/com/sun/crypto/provider/Makefile ! make/common/shared/Defs.gmk ! make/javax/crypto/Defs-jce.gmk ! make/javax/crypto/Makefile ! make/sun/security/mscapi/Makefile ! make/sun/security/pkcs11/Makefile Changeset: f4205a7bdfd4 Author: wetmore Date: 2008-04-07 14:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/f4205a7bdfd4 Merge Changeset: e6da580585e9 Author: tbell Date: 2008-04-07 23:27 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e6da580585e9 Merge ! make/common/shared/Defs.gmk Changeset: 4708b9a13f24 Author: tbell Date: 2008-04-11 15:06 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/4708b9a13f24 Merge Changeset: 3226a9a5cc47 Author: xdono Date: 2008-03-27 12:28 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/3226a9a5cc47 Merge Changeset: 88d235789027 Author: ohair Date: 2008-03-31 17:17 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/88d235789027 6672405: OPENJDK build: jdk7/jdk/make/tools/freetypecheck leaves dirt behind Summary: OpenJDK freetype sanity check cleanup. Reviewed-by: tbell ! make/common/Defs.gmk ! make/common/shared/Sanity.gmk ! make/tools/Makefile ! make/tools/freetypecheck/Makefile Changeset: e6157955511e Author: ohair Date: 2008-03-31 17:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/e6157955511e 6482445: j2se/make/java/java/localegen.sh uses 'sort' from PATH, could get system32/sort Summary: Making sure the right 'sort' utility is found. Reviewed-by: tbell ! make/java/java/genlocales.gmk ! make/java/java/localegen.sh Changeset: 425096dc0fc8 Author: ohair Date: 2008-03-31 17:20 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/425096dc0fc8 6501543: Username can have non-alphanumeric characters Summary: User version string issues, including a L10n issue with month names. Reviewed-by: tbell ! make/common/shared/Defs.gmk Changeset: a977a69d9cf2 Author: ohair Date: 2008-04-01 15:14 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/a977a69d9cf2 6482134: JDK 6 build error on Windows, Visual Studio .NET on Japanese locale Summary: Fix scanning of cl.exe version output, removed CC_TYPE. Reviewed-by: tbell ! make/common/shared/Compiler-gcc.gmk ! make/common/shared/Compiler-msvc.gmk ! make/common/shared/Sanity.gmk Changeset: fa4df2d26d9b Author: ohair Date: 2008-04-01 15:41 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fa4df2d26d9b 6627823: Missed whitespace normalization files: jdk/test/java/rmi Summary: Just missed a few files being normalized in rev 0. Reviewed-by: xdono ! test/java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails_Stub.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateMe.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ShutdownThread.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup_Stub.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/MyActivationGroupImpl.java ! test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java ! test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ActivateMe.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor_Stub.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/CanCreateStubs.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted_Stub.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/ActivateMe.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/CallbackInterface.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/Callback_Stub.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup_Stub.java ! test/java/rmi/dgc/VMID/CheckVMID.java ! test/java/rmi/dgc/dgcAckFailure/DGCAckFailure.java ! test/java/rmi/dgc/dgcAckFailure/DGCAckFailure_Stub.java ! test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java ! test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation_Stub.java ! test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java ! test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls_Stub.java ! test/java/rmi/registry/altSecurityManager/AltSecurityManager.java ! test/java/rmi/registry/altSecurityManager/TestSecurityManager.java ! test/java/rmi/registry/checkusage/CheckUsage.java ! test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java ! test/java/rmi/registry/classPathCodebase/Dummy.java ! test/java/rmi/registry/emptyName/EmptyName.java ! test/java/rmi/registry/interfaceHash/InterfaceHash.java ! test/java/rmi/registry/interfaceHash/ReferenceRegistryStub.java ! test/java/rmi/registry/multipleRegistries/MultipleRegistries.java ! test/java/rmi/registry/reexport/Reexport.java ! test/java/rmi/reliability/benchmark/bench/rmi/BenchServer.java ! test/java/rmi/reliability/benchmark/bench/rmi/BenchServerImpl.java ! test/java/rmi/reliability/benchmark/bench/rmi/BooleanArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/BooleanCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ByteArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ByteCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/CharArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/CharCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ClassLoading.java ! test/java/rmi/reliability/benchmark/bench/rmi/DoubleArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/DoubleCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ExceptionCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ExportObjs.java ! test/java/rmi/reliability/benchmark/bench/rmi/FloatArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/FloatCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/IntArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/IntCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/LongArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/LongCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/Main.java ! test/java/rmi/reliability/benchmark/bench/rmi/NullCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ObjArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ObjTreeCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ProxyArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/RemoteObjArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ShortArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ShortCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/SmallObjTreeCalls.java ! test/java/rmi/reliability/benchmark/bench/serial/BooleanArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Booleans.java ! test/java/rmi/reliability/benchmark/bench/serial/ByteArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Bytes.java ! test/java/rmi/reliability/benchmark/bench/serial/CharArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Chars.java ! test/java/rmi/reliability/benchmark/bench/serial/ClassDesc.java ! test/java/rmi/reliability/benchmark/bench/serial/Cons.java ! test/java/rmi/reliability/benchmark/bench/serial/CustomDefaultObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/CustomObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/DoubleArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Doubles.java ! test/java/rmi/reliability/benchmark/bench/serial/ExternObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/FloatArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Floats.java ! test/java/rmi/reliability/benchmark/bench/serial/GetPutFieldTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/IntArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Ints.java ! test/java/rmi/reliability/benchmark/bench/serial/LongArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Longs.java ! test/java/rmi/reliability/benchmark/bench/serial/Main.java ! test/java/rmi/reliability/benchmark/bench/serial/ObjArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/ObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/ProxyArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/ProxyClassDesc.java ! test/java/rmi/reliability/benchmark/bench/serial/RepeatObjs.java ! test/java/rmi/reliability/benchmark/bench/serial/ReplaceTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/ShortArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Shorts.java ! test/java/rmi/reliability/benchmark/bench/serial/SmallObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/StreamBuffer.java ! test/java/rmi/reliability/benchmark/bench/serial/Strings.java ! test/java/rmi/reliability/juicer/Apple.java ! test/java/rmi/reliability/juicer/AppleEvent.java ! test/java/rmi/reliability/juicer/AppleImpl.java ! test/java/rmi/reliability/juicer/AppleUser.java ! test/java/rmi/reliability/juicer/AppleUserImpl.java ! test/java/rmi/reliability/juicer/ApplicationServer.java ! test/java/rmi/reliability/juicer/Orange.java ! test/java/rmi/reliability/juicer/OrangeEcho.java ! test/java/rmi/reliability/juicer/OrangeEchoImpl.java ! test/java/rmi/reliability/juicer/OrangeImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressConstants.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressInputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressOutputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/Echo.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/MultiSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Compress.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Hello.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressConstants.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressInputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressOutputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/Echo.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/MultiSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java ! test/java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java ! test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java ! test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/Shutdown.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownMonitor.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2_Stub.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport_Stub.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/Ping.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak_Stub.java ! test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java ! test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies_Stub.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread_Stub.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshall.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/PoisonPill.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/RuntimeExceptionParameter.java ! test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java ! test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency_Stub.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval_Stub.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/SelfTerminator.java ! test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java ! test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet_Stub.java ! test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java ! test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext_Stub.java ! test/java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java ! test/java/rmi/transport/checkFQDN/CheckFQDN.java ! test/java/rmi/transport/checkFQDN/CheckFQDNClient.java ! test/java/rmi/transport/checkFQDN/CheckFQDN_Stub.java ! test/java/rmi/transport/checkFQDN/TellServerName.java ! test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java ! test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak_Stub.java ! test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeak.java ! test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java ! test/java/rmi/transport/closeServerSocket/CloseServerSocket.java ! test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java ! test/java/rmi/transport/dgcDeadLock/Test.java ! test/java/rmi/transport/dgcDeadLock/TestImpl.java ! test/java/rmi/transport/dgcDeadLock/TestImpl_Stub.java ! test/java/rmi/transport/handshakeFailure/HandshakeFailure.java ! test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java ! test/java/rmi/transport/httpSocket/HttpSocketTest.java ! test/java/rmi/transport/httpSocket/HttpSocketTest_Stub.java ! test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java ! test/java/rmi/transport/pinLastArguments/PinLastArguments.java ! test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ! test/java/rmi/transport/readTimeout/ReadTimeoutTest.java ! test/java/rmi/transport/readTimeout/TestIface.java ! test/java/rmi/transport/readTimeout/TestImpl.java ! test/java/rmi/transport/readTimeout/TestImpl_Stub.java ! test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java ! test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java ! test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak_Stub.java Changeset: 63e1f1ed9805 Author: xdono Date: 2008-04-07 17:38 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/63e1f1ed9805 Merge Changeset: 68b85ce111f2 Author: ohair Date: 2008-04-14 14:52 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/68b85ce111f2 6484686: The next directory looks like it is no longer part of the build (deploy makefiles) Summary: Getting rid of the _OUTPUTDIR settings. Using BUILD_PARENT_DIRECTORY instead. This solves problems with the "/build/windows-i586*" paths getting mangled on Windows builds (fastdebug builds in particular). Reviewed-by: tbell ! make/common/shared/Defs-control.gmk Changeset: eac50a34a8e0 Author: xdono Date: 2008-04-18 13:24 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/eac50a34a8e0 Merge ! make/common/shared/Defs.gmk Changeset: b1bbd90b0c4f Author: ohair Date: 2008-04-18 12:47 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/b1bbd90b0c4f 6641585: jdk/make/javax/Makefile should not have both SUBDIRS and AUTO_FILES_JAVA_DIRS Summary: Separated Makefile logic, subtree walk vs. javac compiles. Also fixed minor issue in Rules.gmk. Reviewed-by: tbell ! make/common/Rules.gmk ! make/javax/Makefile + make/javax/others/Makefile Changeset: fb57027902e0 Author: ohair Date: 2008-04-18 16:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/jdk/rev/fb57027902e0 Merge From john.rose at sun.com Tue Apr 29 21:43:28 2008 From: john.rose at sun.com (john.rose at sun.com) Date: Wed, 30 Apr 2008 04:43:28 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6695288: runThese tests expr30303 and drem00301m1 fail when compiled code executes without deopt Message-ID: <20080430044330.DFC0627A7D@hg.openjdk.java.net> Changeset: 6e825ad773c6 Author: jrose Date: 2008-04-29 19:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/6e825ad773c6 6695288: runThese tests expr30303 and drem00301m1 fail when compiled code executes without deopt Summary: rework Value method for ModD and ModF, to DTRT for infinities Reviewed-by: sgoldman, kvn, rasbold ! src/share/vm/opto/divnode.cpp From john.rose at sun.com Wed Apr 30 00:10:18 2008 From: john.rose at sun.com (john.rose at sun.com) Date: Wed, 30 Apr 2008 07:10:18 +0000 Subject: hg: jdk7/hotspot-comp/hotspot: 6652736: well known classes in system dictionary are inefficiently processed Message-ID: <20080430071020.C903B27A88@hg.openjdk.java.net> Changeset: 60b728ec77c1 Author: jrose Date: 2008-04-29 19:45 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/60b728ec77c1 6652736: well known classes in system dictionary are inefficiently processed Summary: combine many scalar variables into a single enum-indexed array in SystemDictionary. Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java ! 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/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/threadService.cpp From Vladimir.Kozlov at Sun.COM Wed Apr 30 14:22:33 2008 From: Vladimir.Kozlov at Sun.COM (Vladimir Kozlov) Date: Wed, 30 Apr 2008 14:22:33 -0700 Subject: Request for reviews (M): 6684714: Optimize EA Connection Graph build performance Message-ID: <4818E319.4000007@sun.com> http://webrev.invokedynamic.info/kvn/6684714/index.html Fixed 6684714: Optimize EA Connection Graph build performance Problem: EA spends most time in Connection Graph construction which is done during each method compilation since only after CG built it can look for scalar replaceable candidates and create unique types for fields instances or skip it if there are no such candidates. Especially it is critical for [fast]debug VM which spends about 30% of the compilation time in Connection Graph construction. Solution: 1. Build Connection Graph and execute Escape Analysis only when Ideal graph has allocations. 2. Replace growable arrays and vector sets with arena arrays where possible (their size is fixed since Connection Graph construction doesn't add Ideal nodes). 3. Optimize ConnectionGraph::remove_derefered() and PointsTo() most expensive methods. 4. Remove experimental code in oopMap. Connection Graph build performance improved by x3 in debug VM. Reviewed by: Fix verified (y/n): y Other testing: JPRT, CTW, NSK From lopx at gazeta.pl Wed Apr 30 16:32:13 2008 From: lopx at gazeta.pl (=?UTF-8?B?TWFyY2luIE1pZWzFvHnFhHNraQ==?=) Date: Thu, 01 May 2008 01:32:13 +0200 Subject: Introductions In-Reply-To: <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> References: <479EDC1C.7090707@sun.com> <47AA3F9C.4020101@gazeta.pl> <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> Message-ID: <4819017D.7030804@gazeta.pl> Hello > After a few hundred bytecodes, the inlining heuristic starts to get > scared. Hand inlining is like that: The JVM prefers to do this for you. > > You can play with -XX:FreqInlineSize=N where N is larger than your > switch method. Also maybe bump -XX:MaxInlineSize (default 35). > > But it is better to use small methods and let the JVM pick inlinings. > You may have found a weakness in the profiling that causes the inliner > to fall down. > Recent #jruby conversation revealed another factor that might influence my benchmarks. I've tried MaxInlineSize (100, 500, 1000) some time ago and it indeed give a boost like 40% on my machine for some questionable regexps. The problem is that architecture can have huge impact on the results (I'm on Pentium4 Northwood 32bit). Exactly same settings on Core Duo actually worsened performance! The theory is that older Pentium CPUs have weaker jump prediction accuracy so heavy inlining reduces this factor massively. Though, all this doesn't affect the artificial benchmark I posted where profiling is to blame I'd guess. I'ts reproduceable across different CPUs. I've also tried FreqInlineSize, MaxInlineLevel and few others available in fastdebug OpenJDK builds, none of them had such big impact as MaxInlineSize had (On my architecture only it seems). Other Interesting thing is that turning on UseParallelGC on my single CPU system can give a noticeable boost (in code that doesn't use explicit GC at all). Any Theories ? >> Then I realized that there's something wrong with inlining. After >> that tried different approaches like splitting the switch into ten >> switches and even a tree like one (which turned out to be a complete >> nonsense of course). As split switches worked better for cases I >> tested, the whole thing became a lot slower on average. > > Another thing that's better since Feb. is we now have a disassembly > story that we can share with the public. I put in a plugin interface > to the Gnu binutils library; it's integrated here, in version 13 of > the JVM: > > http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/c7c777385a15 > > There are sources and (imperfect) build instructions for making the > plugin. > > The point of the -XX:+PrintAssembly option is to give you a very > concrete view (often too concrete) as to what decisions the JIT is > making. In your experiments you would have seen a range of code > shapes, from decision trees to jump tables. > I'll definitely try that, so far, I've been only looking at PrintOptoAssembly (not so in depth unfortunately) >> Then I decided to prepare a reduced testcase (attached as >> Aswitch2.java file) for the problem and saw rather surprising >> results. With client compiler benchmarks didn't depend on the number >> of cases but for hotspot server compiler it turned out to be the >> opposite (but it was not linear). >> As you've mentioned before, with small number of cases (and/or low >> complexity of the whole method) Hotspot is able to inline the method >> and the switch into it's caller and then prove that the switching >> value is constant. After increasing number of cases (like 5..10) I >> began to see: >> > > That's a weak part of our heuristic. Hmm. It's especially bad when > there is a great variation in size (switch on constant vs. switch on > non-constant). We know we need heuristics that can estimate the > effects of constant folding. Branches (switches) based on parameter > values are a key case. > But it's quite artificial example. I believe new SSA produced after inlining will always do the right job ? >> appeared in hotspot.log and the timings went down to 650ms >> after adding another 30 or so cases the timings got even worse (700ms >> and more after being warmed up). >> >> So I began to draw conclusions that counting case hits (found it in >> MultiBranchData class and it's consumers) makes Hotspot try to inline >> the most frequent case into the caller or something. I can imagine >> this for two way branch with a stable flow path, but when switch case >> distribution begins to be somewhat 'random/unknown' (in this >> microbenchmark it is not the case though, as only one case is being >> hit) for Hotspot profiler and the switch is big enough, the hole >> thing looses the point, yet switches shall be O(1) with dense values. > > In how many places do you expect the switch code to be inlined? Once > for the general case and many places for constant switch selectors? > I'd like to have it inlined for all used cases, potentially all of them..., though I know it's not possible due to many thresholds. >> Even more surprisingly, the benchmark gets about 10% boost with jump >> tables turned off > > It must be getting smart or lucky with decision trees. If a small > minority of cases determines the performance, and those get compiled > into the heart of the decision tree (and hence the loop), then the > other cases don't really matter. > >> whereas -XX:MaxInlineSize=500 or so doesn't affect the benchmark >> (though it gave a boost for some other joni regexp benchmarks) > > FreqInlineSize takes precedence over MaxInlineSize for hot methods, > IIRC. If so, it's a bug that MaxInlineSize > FreqInlineSize silently > has no effect. In majority of cases it indeed affects the timings, though as I mentioned before I'm becoming to be worried that CPU & architecture is thwarting my experiment numbers. > Do you expect to get a different inlining of the Big Switch for each > Encoding? That will be tricky but may be desirable. You almost want > to use something like anonymous classes as a templating mechanism to > forcibly copy the Big Switch into distinct type contexts. > Very few bytecodes are encoding dependent, most of the job is done by the compiler that emits very specialized instructions (like EXACTMB2N2, that expects to match two twobyte characters). All others that have been used in Oniguruma are specialized for singlebyte (so encoding is eventually not being used during matches in the benchmarks they have been run with). Yay!, I've also considered anonymous classes by having megamorphic callsites. The thing that scared me was too much state in the matcher and possible creation of lots non static class instances every match. On the other hand, those classes might just implement bool perform(Matcher m) or so and do their job (though it would introduce much more indirection to access matcher fields). > Encodings as virtuals: For megamorphic calls, vtables are a little > cheaper than itables. But you win bigger when you factor things so > that interface or virtual calls are monomorphic or at most bimorphic. > Encodings are mostly used during parsing. This actual problem we will face implementing Ruby 1.9 Strings. Unfortunately Encoding.length(byte b) is polymorphic (4-6 versions) and it's going to be used quite heavily there. Might be even possible to reduce it to two versions (return fixed length and return length table lookup). >> ..... >> >> Case fold expansion optimization actually made the opposite effect >> here as we seem to have problem with switch method performance itself >> (all opcodes are very cheap here). We might get rid of this >> optimization as [exactn-ic-sb:n:...] is very cheap for some single >> byte encodings (direct table lookup), but a multibyte one >> ([exactn-ic:n:...]) has very high cost as it uses two buffers to >> unfold the code points and make case insensitive comparison. Also, it >> would be an ugly workaround. > > It sounds like you have a specific need for customizing your Big > Switch for case-folding searches. This takes me one step closer to > the templating precipice. One way to encourage templating-like > behavior from the JVM is to put your Big Switch into an abstract base > class and then specialize it in a range of subclasses. In this case, > perhaps the range of subclasses is dynamically created. (Depends on > the number of degrees of freedom across which you want to customize. > Can you statically enumerate in a bunch of hand-named subclasses, or > not?) > Oh, this one I'll need to think through. The bad news is that lots of patterns are compiled into main switch heavy code (like instant pushing, jumping, etc). >> I admit there still might be bottlenecks in java code I'm not aware >> of. On the other hand, work on jvm bytecode compiled version has been >> started. It will require completely new code for stack manipulation, >> fail fast logic and anchors (Matcher.java). Though, it will bring new >> exciting optimization opportunities like taking advantage of java >> stack and building fail fast code from templates (not to mention even >> more specialized opcode equivalent implementations that will not use >> switches). > > I don't have much hope that the java stack will give you much leverage > on JVM performance, unless you use it in ways that are very similar to > javac output. The java stack is for naming temporary values > compactly, as opposed to a plain register-based architecture. > What about other characteristics ? better to use than ThreadLocal Weakrefed growing array as artificial stack ? pros and cons of those two approaches is that we might run out of java stack or have instant bounds checks with artificial one. > On the other hand, compiling to bytecodes is a great way to bypass all > sort of Big Switch issues. Use anonymous classes for that, if the JVM > supports them. (No plans to standardize these yet on other JVMs. JSR > 292 has its hands full with invokedynamic.) > > The PyPy experience shows that partial evaluation of your Big Switch > can take you a long way. I'd like to make our switch optimizations > work better, even if you end up going all the way to bytecodes. > > BTW, going to bytecodes means you start dealing with the cost of > registering, compiling, and GC-ing the results of class loading. > Anonymous classes help address this, but it's expensive; we've seen > scaling problems with such things, e.g., databases that compile every > SQL query to a tiny class. Perhaps the best thing to do would be > (like JRuby) to go to bytecodes only after the same RE had been used N > times or more (N = 40, maybe). Meanwhile, the Big Switch gives good > performance for low-use REs. Best of all would be a way to fold the > Big Switch with a constant code vector and tell the JVM "partial > evaluate this". With the right library factoring, we can get close to > that ideal, but bytecode generation is probably part of the mix for > the foreseeable future. > Is the "constant code vector" meant to be a code that is used to assemble final ouput by just generating calls mainly? It so, yeah, that would minimize amount of code that's loaded, verified and eventually profiled later when run. The other problem is that the AST is immediately thrown away after compilation, we can keep it but it consumes memory (reparsing the regexp for JIT would solve this problem). The good news is that the we can apply different approaches for different kinds of regexps (like lazy AOTing for immutable literal regexps that are used the most). The other good news is that JRuby already applies much more aggressive (but Weakrefed) regexp caching than CRuby and it really pays back. The regexps that are created via Strings would go separate path you're suggesting. >> >> I've also done some review of Hotspot sources (I'm overwhelmed by it) >> mainly the opto bytecode parser and profiler structures, a bit of >> call site profiling and caching logic. Also did some review of >> optimization phases. But it's still too early for me to draw any >> conclusions, so my question is where to find additional information >> if it exists and what best approach to choose when analyzing the >> sources ? > > We've started a wiki for this purpose; see above. It would be great > if you (or anyone else on the hotspot learning curve) would contribute > to it as you discover important facts. I've added stuff, but since > I've been working on this for 10 years, it's hard to have perspective > on what newcomers need to know. And, this is the best year by far for > being a newcomer! > This is great news, I'm reading this stuff as it appears online. Big thanks for your information. Best Regards. Marcin From lopx at gazeta.pl Wed Apr 30 16:56:50 2008 From: lopx at gazeta.pl (=?UTF-8?B?TWFyY2luIE1pZWzFvHnFhHNraQ==?=) Date: Thu, 01 May 2008 01:56:50 +0200 Subject: Introductions In-Reply-To: <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> References: <479EDC1C.7090707@sun.com> <47AA3F9C.4020101@gazeta.pl> <6C399C5E-3720-45E4-B1A4-5864B7096911@Sun.COM> Message-ID: <48190742.9050706@gazeta.pl> >> StackMachnie.java contains methods responsible for stack >> management/manipulation. ByteCodeMachine.java is the actual bytecode >> interpreter implementation (with matchAt method containing the big >> switch). Each opcode is implemented as a separate method. > > That is reasonable. It keeps the switch per se small, and > (implicitly) asks the JVM to inline the opcode methods that really > matter. > Ah, forgot to mention this one. Surprisingly, removing unused cases (for given matches) that contain just method invocations affects performance. Can such slight differences in method size affect performance as well ? Is that because of inlining/thresolds artifacts ? It there a possibility that neighbour method size plus the size of method being trimmed were on the verge of inlining threshold at hight level ? Marcin