Merge

Fri, 17 Oct 2008 15:18:02 -0700

author
xlu
date
Fri, 17 Oct 2008 15:18:02 -0700
changeset 834
7b51912bdf9a
parent 833
443791f333a2
parent 832
1bf7a2ce4895
child 841
67e8b4d06369
child 844
218f0fd3ca88

Merge

     1.1 --- a/.hgtags	Tue Oct 14 10:15:33 2008 -0400
     1.2 +++ b/.hgtags	Fri Oct 17 15:18:02 2008 -0700
     1.3 @@ -11,3 +11,4 @@
     1.4  5251a9cd8eb8743eee647365bee1c8afdc131556 jdk7-b34
     1.5  5fa96a5a7e76da7c8dad12486293a0456c2c116c jdk7-b35
     1.6  e91159f921a58af3698e6479ea1fc5818da66d09 jdk7-b36
     1.7 +9ee9cf798b59e7d51f8c0a686959f313867a55d6 jdk7-b37
     2.1 --- a/agent/make/bugspot.bat	Tue Oct 14 10:15:33 2008 -0400
     2.2 +++ b/agent/make/bugspot.bat	Fri Oct 17 15:18:02 2008 -0700
     2.3 @@ -1,5 +1,5 @@
     2.4  REM
     2.5 -REM Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
     2.6 +REM Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
     2.7  REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8  REM
     2.9  REM This code is free software; you can redistribute it and/or modify it
     3.1 --- a/agent/make/build.xml	Tue Oct 14 10:15:33 2008 -0400
     3.2 +++ b/agent/make/build.xml	Fri Oct 17 15:18:02 2008 -0700
     3.3 @@ -1,6 +1,6 @@
     3.4  <?xml version="1.0" encoding="UTF-8"?>
     3.5  <!--
     3.6 - Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
     3.7 + Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
     3.8   DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3.9  
    3.10   This code is free software; you can redistribute it and/or modify it
     4.1 --- a/agent/make/hsdb.bat	Tue Oct 14 10:15:33 2008 -0400
     4.2 +++ b/agent/make/hsdb.bat	Fri Oct 17 15:18:02 2008 -0700
     4.3 @@ -1,5 +1,5 @@
     4.4  REM
     4.5 -REM Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
     4.6 +REM Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
     4.7  REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.8  REM
     4.9  REM This code is free software; you can redistribute it and/or modify it
     5.1 --- a/agent/make/hsdb.sh	Tue Oct 14 10:15:33 2008 -0400
     5.2 +++ b/agent/make/hsdb.sh	Fri Oct 17 15:18:02 2008 -0700
     5.3 @@ -1,6 +1,6 @@
     5.4  #!/bin/sh
     5.5  #
     5.6 -# Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
     5.7 +# Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
     5.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5.9  #
    5.10  # This code is free software; you can redistribute it and/or modify it
     6.1 --- a/agent/make/saenv.bat	Tue Oct 14 10:15:33 2008 -0400
     6.2 +++ b/agent/make/saenv.bat	Fri Oct 17 15:18:02 2008 -0700
     6.3 @@ -1,6 +1,6 @@
     6.4  @echo off
     6.5  REM
     6.6 -REM Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
     6.7 +REM Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
     6.8  REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.9  REM
    6.10  REM This code is free software; you can redistribute it and/or modify it
     7.1 --- a/agent/make/saenv.sh	Tue Oct 14 10:15:33 2008 -0400
     7.2 +++ b/agent/make/saenv.sh	Fri Oct 17 15:18:02 2008 -0700
     7.3 @@ -1,6 +1,6 @@
     7.4  #!/bin/sh
     7.5  #
     7.6 -# Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
     7.7 +# Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
     7.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     7.9  #
    7.10  # This code is free software; you can redistribute it and/or modify it
     8.1 --- a/agent/make/saenv64.bat	Tue Oct 14 10:15:33 2008 -0400
     8.2 +++ b/agent/make/saenv64.bat	Fri Oct 17 15:18:02 2008 -0700
     8.3 @@ -1,6 +1,6 @@
     8.4  @echo off
     8.5  REM
     8.6 -REM Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
     8.7 +REM Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
     8.8  REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.9  REM
    8.10  REM This code is free software; you can redistribute it and/or modify it
     9.1 --- a/agent/make/saenv64.sh	Tue Oct 14 10:15:33 2008 -0400
     9.2 +++ b/agent/make/saenv64.sh	Fri Oct 17 15:18:02 2008 -0700
     9.3 @@ -1,6 +1,6 @@
     9.4  #!/bin/sh
     9.5  #
     9.6 -# Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
     9.7 +# Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
     9.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.9  #
    9.10  # This code is free software; you can redistribute it and/or modify it
    10.1 --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java	Tue Oct 14 10:15:33 2008 -0400
    10.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java	Fri Oct 17 15:18:02 2008 -0700
    10.3 @@ -1,5 +1,5 @@
    10.4  /*
    10.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    10.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    10.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.8   *
    10.9   * This code is free software; you can redistribute it and/or modify it
    11.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java	Tue Oct 14 10:15:33 2008 -0400
    11.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java	Fri Oct 17 15:18:02 2008 -0700
    11.3 @@ -1,5 +1,5 @@
    11.4  /*
    11.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    11.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    11.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11.8   *
    11.9   * This code is free software; you can redistribute it and/or modify it
    12.1 --- a/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java	Tue Oct 14 10:15:33 2008 -0400
    12.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java	Fri Oct 17 15:18:02 2008 -0700
    12.3 @@ -1,5 +1,5 @@
    12.4  /*
    12.5 - * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
    12.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    12.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8   *
    12.9   * This code is free software; you can redistribute it and/or modify it
    13.1 --- a/src/cpu/x86/vm/assembler_x86.inline.hpp	Tue Oct 14 10:15:33 2008 -0400
    13.2 +++ b/src/cpu/x86/vm/assembler_x86.inline.hpp	Fri Oct 17 15:18:02 2008 -0700
    13.3 @@ -1,5 +1,5 @@
    13.4  /*
    13.5 - * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
    13.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    13.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.8   *
    13.9   * This code is free software; you can redistribute it and/or modify it
    14.1 --- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    14.2 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    14.3 @@ -1,5 +1,5 @@
    14.4  /*
    14.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    14.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    14.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.8   *
    14.9   * This code is free software; you can redistribute it and/or modify it
    15.1 --- a/src/cpu/x86/vm/c1_Defs_x86.hpp	Tue Oct 14 10:15:33 2008 -0400
    15.2 +++ b/src/cpu/x86/vm/c1_Defs_x86.hpp	Fri Oct 17 15:18:02 2008 -0700
    15.3 @@ -1,5 +1,5 @@
    15.4  /*
    15.5 - * Copyright 2000-2005 Sun Microsystems, Inc.  All Rights Reserved.
    15.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    15.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8   *
    15.9   * This code is free software; you can redistribute it and/or modify it
    16.1 --- a/src/cpu/x86/vm/c1_FrameMap_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    16.2 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    16.3 @@ -1,5 +1,5 @@
    16.4  /*
    16.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    16.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    16.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    16.8   *
    16.9   * This code is free software; you can redistribute it and/or modify it
    17.1 --- a/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Tue Oct 14 10:15:33 2008 -0400
    17.2 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Fri Oct 17 15:18:02 2008 -0700
    17.3 @@ -1,5 +1,5 @@
    17.4  /*
    17.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    17.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    17.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.8   *
    17.9   * This code is free software; you can redistribute it and/or modify it
    18.1 --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp	Tue Oct 14 10:15:33 2008 -0400
    18.2 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp	Fri Oct 17 15:18:02 2008 -0700
    18.3 @@ -1,5 +1,5 @@
    18.4  /*
    18.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    18.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    18.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.8   *
    18.9   * This code is free software; you can redistribute it and/or modify it
    19.1 --- a/src/cpu/x86/vm/c1_LinearScan_x86.hpp	Tue Oct 14 10:15:33 2008 -0400
    19.2 +++ b/src/cpu/x86/vm/c1_LinearScan_x86.hpp	Fri Oct 17 15:18:02 2008 -0700
    19.3 @@ -1,5 +1,5 @@
    19.4  /*
    19.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    19.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    19.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    19.8   *
    19.9   * This code is free software; you can redistribute it and/or modify it
    20.1 --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp	Tue Oct 14 10:15:33 2008 -0400
    20.2 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp	Fri Oct 17 15:18:02 2008 -0700
    20.3 @@ -1,5 +1,5 @@
    20.4  /*
    20.5 - * Copyright 1999-2005 Sun Microsystems, Inc.  All Rights Reserved.
    20.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    20.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    20.8   *
    20.9   * This code is free software; you can redistribute it and/or modify it
    21.1 --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    21.2 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    21.3 @@ -1,5 +1,5 @@
    21.4  /*
    21.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
    21.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    21.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    21.8   *
    21.9   * This code is free software; you can redistribute it and/or modify it
    22.1 --- a/src/cpu/x86/vm/cppInterpreter_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    22.2 +++ b/src/cpu/x86/vm/cppInterpreter_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    22.3 @@ -1,5 +1,5 @@
    22.4  /*
    22.5 - * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
    22.6 + * Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    22.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.8   *
    22.9   * This code is free software; you can redistribute it and/or modify it
    23.1 --- a/src/cpu/x86/vm/dump_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    23.2 +++ b/src/cpu/x86/vm/dump_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    23.3 @@ -1,5 +1,5 @@
    23.4  /*
    23.5 - * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
    23.6 + * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
    23.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.8   *
    23.9   * This code is free software; you can redistribute it and/or modify it
    24.1 --- a/src/cpu/x86/vm/dump_x86_64.cpp	Tue Oct 14 10:15:33 2008 -0400
    24.2 +++ b/src/cpu/x86/vm/dump_x86_64.cpp	Fri Oct 17 15:18:02 2008 -0700
    24.3 @@ -1,5 +1,5 @@
    24.4  /*
    24.5 - * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
    24.6 + * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
    24.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.8   *
    24.9   * This code is free software; you can redistribute it and/or modify it
    25.1 --- a/src/cpu/x86/vm/icache_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    25.2 +++ b/src/cpu/x86/vm/icache_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    25.3 @@ -1,5 +1,5 @@
    25.4  /*
    25.5 - * Copyright 1997-2004 Sun Microsystems, Inc.  All Rights Reserved.
    25.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    25.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.8   *
    25.9   * This code is free software; you can redistribute it and/or modify it
    26.1 --- a/src/cpu/x86/vm/interp_masm_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    26.2 +++ b/src/cpu/x86/vm/interp_masm_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    26.3 @@ -1,5 +1,5 @@
    26.4  /*
    26.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    26.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    26.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.8   *
    26.9   * This code is free software; you can redistribute it and/or modify it
    27.1 --- a/src/cpu/x86/vm/interp_masm_x86_32.hpp	Tue Oct 14 10:15:33 2008 -0400
    27.2 +++ b/src/cpu/x86/vm/interp_masm_x86_32.hpp	Fri Oct 17 15:18:02 2008 -0700
    27.3 @@ -1,5 +1,5 @@
    27.4  /*
    27.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    27.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    27.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.8   *
    27.9   * This code is free software; you can redistribute it and/or modify it
    28.1 --- a/src/cpu/x86/vm/interp_masm_x86_64.hpp	Tue Oct 14 10:15:33 2008 -0400
    28.2 +++ b/src/cpu/x86/vm/interp_masm_x86_64.hpp	Fri Oct 17 15:18:02 2008 -0700
    28.3 @@ -1,5 +1,5 @@
    28.4  /*
    28.5 - * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
    28.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    28.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.8   *
    28.9   * This code is free software; you can redistribute it and/or modify it
    29.1 --- a/src/cpu/x86/vm/interpreterRT_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    29.2 +++ b/src/cpu/x86/vm/interpreterRT_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    29.3 @@ -1,5 +1,5 @@
    29.4  /*
    29.5 - * Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
    29.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    29.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.8   *
    29.9   * This code is free software; you can redistribute it and/or modify it
    30.1 --- a/src/cpu/x86/vm/interpreterRT_x86_64.cpp	Tue Oct 14 10:15:33 2008 -0400
    30.2 +++ b/src/cpu/x86/vm/interpreterRT_x86_64.cpp	Fri Oct 17 15:18:02 2008 -0700
    30.3 @@ -1,5 +1,5 @@
    30.4  /*
    30.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    30.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    30.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    30.8   *
    30.9   * This code is free software; you can redistribute it and/or modify it
    31.1 --- a/src/cpu/x86/vm/interpreter_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    31.2 +++ b/src/cpu/x86/vm/interpreter_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    31.3 @@ -1,5 +1,5 @@
    31.4  /*
    31.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    31.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    31.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    31.8   *
    31.9   * This code is free software; you can redistribute it and/or modify it
    32.1 --- a/src/cpu/x86/vm/jniFastGetField_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    32.2 +++ b/src/cpu/x86/vm/jniFastGetField_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    32.3 @@ -1,5 +1,5 @@
    32.4  /*
    32.5 - * Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
    32.6 + * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
    32.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.8   *
    32.9   * This code is free software; you can redistribute it and/or modify it
    33.1 --- a/src/cpu/x86/vm/jniFastGetField_x86_64.cpp	Tue Oct 14 10:15:33 2008 -0400
    33.2 +++ b/src/cpu/x86/vm/jniFastGetField_x86_64.cpp	Fri Oct 17 15:18:02 2008 -0700
    33.3 @@ -1,5 +1,5 @@
    33.4  /*
    33.5 - * Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
    33.6 + * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
    33.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    33.8   *
    33.9   * This code is free software; you can redistribute it and/or modify it
    34.1 --- a/src/cpu/x86/vm/runtime_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    34.2 +++ b/src/cpu/x86/vm/runtime_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    34.3 @@ -1,5 +1,5 @@
    34.4  /*
    34.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
    34.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    34.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    34.8   *
    34.9   * This code is free software; you can redistribute it and/or modify it
    35.1 --- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    35.2 +++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    35.3 @@ -1,5 +1,5 @@
    35.4  /*
    35.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
    35.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    35.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    35.8   *
    35.9   * This code is free software; you can redistribute it and/or modify it
    36.1 --- a/src/cpu/x86/vm/stubRoutines_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    36.2 +++ b/src/cpu/x86/vm/stubRoutines_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    36.3 @@ -1,5 +1,5 @@
    36.4  /*
    36.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    36.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    36.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.8   *
    36.9   * This code is free software; you can redistribute it and/or modify it
    37.1 --- a/src/cpu/x86/vm/stubRoutines_x86_32.hpp	Tue Oct 14 10:15:33 2008 -0400
    37.2 +++ b/src/cpu/x86/vm/stubRoutines_x86_32.hpp	Fri Oct 17 15:18:02 2008 -0700
    37.3 @@ -1,5 +1,5 @@
    37.4  /*
    37.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    37.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    37.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.8   *
    37.9   * This code is free software; you can redistribute it and/or modify it
    38.1 --- a/src/cpu/x86/vm/stubRoutines_x86_64.cpp	Tue Oct 14 10:15:33 2008 -0400
    38.2 +++ b/src/cpu/x86/vm/stubRoutines_x86_64.cpp	Fri Oct 17 15:18:02 2008 -0700
    38.3 @@ -1,5 +1,5 @@
    38.4  /*
    38.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    38.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    38.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    38.8   *
    38.9   * This code is free software; you can redistribute it and/or modify it
    39.1 --- a/src/cpu/x86/vm/stubRoutines_x86_64.hpp	Tue Oct 14 10:15:33 2008 -0400
    39.2 +++ b/src/cpu/x86/vm/stubRoutines_x86_64.hpp	Fri Oct 17 15:18:02 2008 -0700
    39.3 @@ -1,5 +1,5 @@
    39.4  /*
    39.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    39.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    39.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    39.8   *
    39.9   * This code is free software; you can redistribute it and/or modify it
    40.1 --- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    40.2 +++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    40.3 @@ -1,5 +1,5 @@
    40.4  /*
    40.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    40.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    40.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    40.8   *
    40.9   * This code is free software; you can redistribute it and/or modify it
    41.1 --- a/src/cpu/x86/vm/templateTable_x86_32.hpp	Tue Oct 14 10:15:33 2008 -0400
    41.2 +++ b/src/cpu/x86/vm/templateTable_x86_32.hpp	Fri Oct 17 15:18:02 2008 -0700
    41.3 @@ -1,5 +1,5 @@
    41.4  /*
    41.5 - * Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
    41.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    41.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    41.8   *
    41.9   * This code is free software; you can redistribute it and/or modify it
    42.1 --- a/src/cpu/x86/vm/vtableStubs_x86_32.cpp	Tue Oct 14 10:15:33 2008 -0400
    42.2 +++ b/src/cpu/x86/vm/vtableStubs_x86_32.cpp	Fri Oct 17 15:18:02 2008 -0700
    42.3 @@ -1,5 +1,5 @@
    42.4  /*
    42.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    42.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    42.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    42.8   *
    42.9   * This code is free software; you can redistribute it and/or modify it
    43.1 --- a/src/os/solaris/vm/osThread_solaris.cpp	Tue Oct 14 10:15:33 2008 -0400
    43.2 +++ b/src/os/solaris/vm/osThread_solaris.cpp	Fri Oct 17 15:18:02 2008 -0700
    43.3 @@ -1,5 +1,5 @@
    43.4  /*
    43.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
    43.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    43.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    43.8   *
    43.9   * This code is free software; you can redistribute it and/or modify it
    44.1 --- a/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp	Tue Oct 14 10:15:33 2008 -0400
    44.2 +++ b/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp	Fri Oct 17 15:18:02 2008 -0700
    44.3 @@ -1,5 +1,5 @@
    44.4  /*
    44.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    44.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    44.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    44.8   *
    44.9   * This code is free software; you can redistribute it and/or modify it
    45.1 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad	Tue Oct 14 10:15:33 2008 -0400
    45.2 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad	Fri Oct 17 15:18:02 2008 -0700
    45.3 @@ -1,5 +1,5 @@
    45.4  //
    45.5 -// Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    45.6 +// Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    45.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    45.8  //
    45.9  // This code is free software; you can redistribute it and/or modify it
    46.1 --- a/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Tue Oct 14 10:15:33 2008 -0400
    46.2 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Fri Oct 17 15:18:02 2008 -0700
    46.3 @@ -1,5 +1,5 @@
    46.4  /*
    46.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
    46.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    46.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    46.8   *
    46.9   * This code is free software; you can redistribute it and/or modify it
    47.1 --- a/src/share/vm/asm/assembler.cpp	Tue Oct 14 10:15:33 2008 -0400
    47.2 +++ b/src/share/vm/asm/assembler.cpp	Fri Oct 17 15:18:02 2008 -0700
    47.3 @@ -1,5 +1,5 @@
    47.4  /*
    47.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    47.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    47.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    47.8   *
    47.9   * This code is free software; you can redistribute it and/or modify it
    48.1 --- a/src/share/vm/c1/c1_FrameMap.cpp	Tue Oct 14 10:15:33 2008 -0400
    48.2 +++ b/src/share/vm/c1/c1_FrameMap.cpp	Fri Oct 17 15:18:02 2008 -0700
    48.3 @@ -1,5 +1,5 @@
    48.4  /*
    48.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    48.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    48.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    48.8   *
    48.9   * This code is free software; you can redistribute it and/or modify it
    49.1 --- a/src/share/vm/c1/c1_LIR.hpp	Tue Oct 14 10:15:33 2008 -0400
    49.2 +++ b/src/share/vm/c1/c1_LIR.hpp	Fri Oct 17 15:18:02 2008 -0700
    49.3 @@ -1,5 +1,5 @@
    49.4  /*
    49.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    49.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    49.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    49.8   *
    49.9   * This code is free software; you can redistribute it and/or modify it
    50.1 --- a/src/share/vm/c1/c1_LIRAssembler.cpp	Tue Oct 14 10:15:33 2008 -0400
    50.2 +++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Fri Oct 17 15:18:02 2008 -0700
    50.3 @@ -1,5 +1,5 @@
    50.4  /*
    50.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    50.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    50.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    50.8   *
    50.9   * This code is free software; you can redistribute it and/or modify it
    51.1 --- a/src/share/vm/c1/c1_LIRAssembler.hpp	Tue Oct 14 10:15:33 2008 -0400
    51.2 +++ b/src/share/vm/c1/c1_LIRAssembler.hpp	Fri Oct 17 15:18:02 2008 -0700
    51.3 @@ -1,5 +1,5 @@
    51.4  /*
    51.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    51.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    51.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    51.8   *
    51.9   * This code is free software; you can redistribute it and/or modify it
    52.1 --- a/src/share/vm/c1/c1_LIRGenerator.cpp	Tue Oct 14 10:15:33 2008 -0400
    52.2 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Fri Oct 17 15:18:02 2008 -0700
    52.3 @@ -1,5 +1,5 @@
    52.4  /*
    52.5 - * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
    52.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    52.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    52.8   *
    52.9   * This code is free software; you can redistribute it and/or modify it
    53.1 --- a/src/share/vm/c1/c1_LinearScan.cpp	Tue Oct 14 10:15:33 2008 -0400
    53.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp	Fri Oct 17 15:18:02 2008 -0700
    53.3 @@ -1,5 +1,5 @@
    53.4  /*
    53.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    53.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    53.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    53.8   *
    53.9   * This code is free software; you can redistribute it and/or modify it
    54.1 --- a/src/share/vm/c1/c1_LinearScan.hpp	Tue Oct 14 10:15:33 2008 -0400
    54.2 +++ b/src/share/vm/c1/c1_LinearScan.hpp	Fri Oct 17 15:18:02 2008 -0700
    54.3 @@ -1,5 +1,5 @@
    54.4  /*
    54.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    54.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    54.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    54.8   *
    54.9   * This code is free software; you can redistribute it and/or modify it
    55.1 --- a/src/share/vm/ci/ciTypeFlow.hpp	Tue Oct 14 10:15:33 2008 -0400
    55.2 +++ b/src/share/vm/ci/ciTypeFlow.hpp	Fri Oct 17 15:18:02 2008 -0700
    55.3 @@ -1,5 +1,5 @@
    55.4  /*
    55.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    55.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    55.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    55.8   *
    55.9   * This code is free software; you can redistribute it and/or modify it
    56.1 --- a/src/share/vm/code/relocInfo.hpp	Tue Oct 14 10:15:33 2008 -0400
    56.2 +++ b/src/share/vm/code/relocInfo.hpp	Fri Oct 17 15:18:02 2008 -0700
    56.3 @@ -1,5 +1,5 @@
    56.4  /*
    56.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    56.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    56.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    56.8   *
    56.9   * This code is free software; you can redistribute it and/or modify it
    57.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Tue Oct 14 10:15:33 2008 -0400
    57.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Fri Oct 17 15:18:02 2008 -0700
    57.3 @@ -1398,7 +1398,7 @@
    57.4    _g1_storage.initialize(g1_rs, 0);
    57.5    _g1_committed = MemRegion((HeapWord*)_g1_storage.low(), (size_t) 0);
    57.6    _g1_max_committed = _g1_committed;
    57.7 -  _hrs = new HeapRegionSeq();
    57.8 +  _hrs = new HeapRegionSeq(_expansion_regions);
    57.9    guarantee(_hrs != NULL, "Couldn't allocate HeapRegionSeq");
   57.10    guarantee(_cur_alloc_region == NULL, "from constructor");
   57.11  
    58.1 --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp	Tue Oct 14 10:15:33 2008 -0400
    58.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp	Fri Oct 17 15:18:02 2008 -0700
    58.3 @@ -37,7 +37,7 @@
    58.4    return 0;
    58.5  }
    58.6  
    58.7 -HeapRegionSeq::HeapRegionSeq() :
    58.8 +HeapRegionSeq::HeapRegionSeq(const size_t max_size) :
    58.9    _alloc_search_start(0),
   58.10    // The line below is the worst bit of C++ hackery I've ever written
   58.11    // (Detlefs, 11/23).  You should think of it as equivalent to
   58.12 @@ -50,7 +50,7 @@
   58.13    _regions((ResourceObj::operator new (sizeof(GrowableArray<HeapRegion*>),
   58.14                                         (void*)&_regions,
   58.15                                         ResourceObj::C_HEAP),
   58.16 -            100),
   58.17 +            (int)max_size),
   58.18             true),
   58.19    _next_rr_candidate(0),
   58.20    _seq_bottom(NULL)
   58.21 @@ -167,6 +167,7 @@
   58.22  // Public methods.
   58.23  
   58.24  void HeapRegionSeq::insert(HeapRegion* hr) {
   58.25 +  assert(!_regions.is_full(), "Too many elements in HeapRegionSeq");
   58.26    if (_regions.length() == 0
   58.27        || _regions.top()->end() <= hr->bottom()) {
   58.28      hr->set_hrs_index(_regions.length());
    59.1 --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp	Tue Oct 14 10:15:33 2008 -0400
    59.2 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp	Fri Oct 17 15:18:02 2008 -0700
    59.3 @@ -49,7 +49,7 @@
    59.4  
    59.5   public:
    59.6    // Initializes "this" to the empty sequence of regions.
    59.7 -  HeapRegionSeq();
    59.8 +  HeapRegionSeq(const size_t max_size);
    59.9  
   59.10    // Adds "hr" to "this" sequence.  Requires "hr" not to overlap with
   59.11    // any region already in "this".  (Will perform better if regions are
    60.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp	Tue Oct 14 10:15:33 2008 -0400
    60.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp	Fri Oct 17 15:18:02 2008 -0700
    60.3 @@ -1,5 +1,5 @@
    60.4  /*
    60.5 - * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
    60.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    60.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    60.8   *
    60.9   * This code is free software; you can redistribute it and/or modify it
    61.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp	Tue Oct 14 10:15:33 2008 -0400
    61.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp	Fri Oct 17 15:18:02 2008 -0700
    61.3 @@ -1,5 +1,5 @@
    61.4  /*
    61.5 - * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
    61.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    61.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    61.8   *
    61.9   * This code is free software; you can redistribute it and/or modify it
    62.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp	Tue Oct 14 10:15:33 2008 -0400
    62.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp	Fri Oct 17 15:18:02 2008 -0700
    62.3 @@ -1,5 +1,5 @@
    62.4  /*
    62.5 - * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
    62.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    62.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    62.8   *
    62.9   * This code is free software; you can redistribute it and/or modify it
    63.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp	Tue Oct 14 10:15:33 2008 -0400
    63.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp	Fri Oct 17 15:18:02 2008 -0700
    63.3 @@ -1,5 +1,5 @@
    63.4  /*
    63.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    63.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    63.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    63.8   *
    63.9   * This code is free software; you can redistribute it and/or modify it
    64.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp	Tue Oct 14 10:15:33 2008 -0400
    64.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp	Fri Oct 17 15:18:02 2008 -0700
    64.3 @@ -1,5 +1,5 @@
    64.4  /*
    64.5 - * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
    64.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    64.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    64.8   *
    64.9   * This code is free software; you can redistribute it and/or modify it
    65.1 --- a/src/share/vm/gc_implementation/shared/gcUtil.hpp	Tue Oct 14 10:15:33 2008 -0400
    65.2 +++ b/src/share/vm/gc_implementation/shared/gcUtil.hpp	Fri Oct 17 15:18:02 2008 -0700
    65.3 @@ -1,5 +1,5 @@
    65.4  /*
    65.5 - * Copyright 2002-2005 Sun Microsystems, Inc.  All Rights Reserved.
    65.6 + * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    65.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    65.8   *
    65.9   * This code is free software; you can redistribute it and/or modify it
    66.1 --- a/src/share/vm/gc_implementation/shared/spaceDecorator.cpp	Tue Oct 14 10:15:33 2008 -0400
    66.2 +++ b/src/share/vm/gc_implementation/shared/spaceDecorator.cpp	Fri Oct 17 15:18:02 2008 -0700
    66.3 @@ -1,5 +1,5 @@
    66.4  /*
    66.5 - * Copyright 2002-2005 Sun Microsystems, Inc.  All Rights Reserved.
    66.6 + * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    66.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    66.8   *
    66.9   * This code is free software; you can redistribute it and/or modify it
    67.1 --- a/src/share/vm/gc_implementation/shared/spaceDecorator.hpp	Tue Oct 14 10:15:33 2008 -0400
    67.2 +++ b/src/share/vm/gc_implementation/shared/spaceDecorator.hpp	Fri Oct 17 15:18:02 2008 -0700
    67.3 @@ -1,5 +1,5 @@
    67.4  /*
    67.5 - * Copyright 2002-2005 Sun Microsystems, Inc.  All Rights Reserved.
    67.6 + * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    67.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    67.8   *
    67.9   * This code is free software; you can redistribute it and/or modify it
    68.1 --- a/src/share/vm/includeDB_features	Tue Oct 14 10:15:33 2008 -0400
    68.2 +++ b/src/share/vm/includeDB_features	Fri Oct 17 15:18:02 2008 -0700
    68.3 @@ -1,5 +1,5 @@
    68.4  //
    68.5 -// Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
    68.6 +// Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    68.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    68.8  //
    68.9  // This code is free software; you can redistribute it and/or modify it
   68.10 @@ -99,6 +99,7 @@
   68.11  heapDumper.cpp                          reflectionUtils.hpp
   68.12  heapDumper.cpp                          symbolTable.hpp
   68.13  heapDumper.cpp                          systemDictionary.hpp
   68.14 +heapDumper.cpp                          threadService.hpp
   68.15  heapDumper.cpp                          universe.hpp
   68.16  heapDumper.cpp                          vframe.hpp
   68.17  heapDumper.cpp                          vmGCOperations.hpp
    69.1 --- a/src/share/vm/memory/blockOffsetTable.hpp	Tue Oct 14 10:15:33 2008 -0400
    69.2 +++ b/src/share/vm/memory/blockOffsetTable.hpp	Fri Oct 17 15:18:02 2008 -0700
    69.3 @@ -1,5 +1,5 @@
    69.4  /*
    69.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    69.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    69.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    69.8   *
    69.9   * This code is free software; you can redistribute it and/or modify it
    70.1 --- a/src/share/vm/memory/compactingPermGenGen.hpp	Tue Oct 14 10:15:33 2008 -0400
    70.2 +++ b/src/share/vm/memory/compactingPermGenGen.hpp	Fri Oct 17 15:18:02 2008 -0700
    70.3 @@ -1,5 +1,5 @@
    70.4  /*
    70.5 - * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
    70.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    70.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    70.8   *
    70.9   * This code is free software; you can redistribute it and/or modify it
    71.1 --- a/src/share/vm/opto/block.cpp	Tue Oct 14 10:15:33 2008 -0400
    71.2 +++ b/src/share/vm/opto/block.cpp	Fri Oct 17 15:18:02 2008 -0700
    71.3 @@ -1,5 +1,5 @@
    71.4  /*
    71.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    71.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    71.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.8   *
    71.9   * This code is free software; you can redistribute it and/or modify it
    72.1 --- a/src/share/vm/opto/callGenerator.cpp	Tue Oct 14 10:15:33 2008 -0400
    72.2 +++ b/src/share/vm/opto/callGenerator.cpp	Fri Oct 17 15:18:02 2008 -0700
    72.3 @@ -1,5 +1,5 @@
    72.4  /*
    72.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    72.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    72.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    72.8   *
    72.9   * This code is free software; you can redistribute it and/or modify it
    73.1 --- a/src/share/vm/opto/coalesce.cpp	Tue Oct 14 10:15:33 2008 -0400
    73.2 +++ b/src/share/vm/opto/coalesce.cpp	Fri Oct 17 15:18:02 2008 -0700
    73.3 @@ -1,5 +1,5 @@
    73.4  /*
    73.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    73.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    73.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    73.8   *
    73.9   * This code is free software; you can redistribute it and/or modify it
    74.1 --- a/src/share/vm/opto/idealGraphPrinter.cpp	Tue Oct 14 10:15:33 2008 -0400
    74.2 +++ b/src/share/vm/opto/idealGraphPrinter.cpp	Fri Oct 17 15:18:02 2008 -0700
    74.3 @@ -1,5 +1,5 @@
    74.4  /*
    74.5 - * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
    74.6 + * Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    74.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    74.8   *
    74.9   * This code is free software; you can redistribute it and/or modify it
    75.1 --- a/src/share/vm/opto/ifg.cpp	Tue Oct 14 10:15:33 2008 -0400
    75.2 +++ b/src/share/vm/opto/ifg.cpp	Fri Oct 17 15:18:02 2008 -0700
    75.3 @@ -1,5 +1,5 @@
    75.4  /*
    75.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
    75.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    75.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    75.8   *
    75.9   * This code is free software; you can redistribute it and/or modify it
    76.1 --- a/src/share/vm/opto/ifnode.cpp	Tue Oct 14 10:15:33 2008 -0400
    76.2 +++ b/src/share/vm/opto/ifnode.cpp	Fri Oct 17 15:18:02 2008 -0700
    76.3 @@ -1,5 +1,5 @@
    76.4  /*
    76.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    76.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    76.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    76.8   *
    76.9   * This code is free software; you can redistribute it and/or modify it
    77.1 --- a/src/share/vm/opto/reg_split.cpp	Tue Oct 14 10:15:33 2008 -0400
    77.2 +++ b/src/share/vm/opto/reg_split.cpp	Fri Oct 17 15:18:02 2008 -0700
    77.3 @@ -1,5 +1,5 @@
    77.4  /*
    77.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    77.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    77.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    77.8   *
    77.9   * This code is free software; you can redistribute it and/or modify it
    78.1 --- a/src/share/vm/runtime/statSampler.cpp	Tue Oct 14 10:15:33 2008 -0400
    78.2 +++ b/src/share/vm/runtime/statSampler.cpp	Fri Oct 17 15:18:02 2008 -0700
    78.3 @@ -1,5 +1,5 @@
    78.4  /*
    78.5 - * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
    78.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    78.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    78.8   *
    78.9   * This code is free software; you can redistribute it and/or modify it
    79.1 --- a/src/share/vm/runtime/threadLocalStorage.cpp	Tue Oct 14 10:15:33 2008 -0400
    79.2 +++ b/src/share/vm/runtime/threadLocalStorage.cpp	Fri Oct 17 15:18:02 2008 -0700
    79.3 @@ -1,5 +1,5 @@
    79.4  /*
    79.5 - * Copyright 1997-2003 Sun Microsystems, Inc.  All Rights Reserved.
    79.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    79.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    79.8   *
    79.9   * This code is free software; you can redistribute it and/or modify it
    80.1 --- a/src/share/vm/runtime/threadLocalStorage.hpp	Tue Oct 14 10:15:33 2008 -0400
    80.2 +++ b/src/share/vm/runtime/threadLocalStorage.hpp	Fri Oct 17 15:18:02 2008 -0700
    80.3 @@ -1,5 +1,5 @@
    80.4  /*
    80.5 - * Copyright 1997-2003 Sun Microsystems, Inc.  All Rights Reserved.
    80.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    80.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    80.8   *
    80.9   * This code is free software; you can redistribute it and/or modify it
    81.1 --- a/src/share/vm/runtime/virtualspace.cpp	Tue Oct 14 10:15:33 2008 -0400
    81.2 +++ b/src/share/vm/runtime/virtualspace.cpp	Fri Oct 17 15:18:02 2008 -0700
    81.3 @@ -1,5 +1,5 @@
    81.4  /*
    81.5 - * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
    81.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    81.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    81.8   *
    81.9   * This code is free software; you can redistribute it and/or modify it
    82.1 --- a/src/share/vm/runtime/virtualspace.hpp	Tue Oct 14 10:15:33 2008 -0400
    82.2 +++ b/src/share/vm/runtime/virtualspace.hpp	Fri Oct 17 15:18:02 2008 -0700
    82.3 @@ -1,5 +1,5 @@
    82.4  /*
    82.5 - * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
    82.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    82.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    82.8   *
    82.9   * This code is free software; you can redistribute it and/or modify it
    83.1 --- a/src/share/vm/services/heapDumper.cpp	Tue Oct 14 10:15:33 2008 -0400
    83.2 +++ b/src/share/vm/services/heapDumper.cpp	Fri Oct 17 15:18:02 2008 -0700
    83.3 @@ -343,7 +343,8 @@
    83.4  
    83.5  // Default stack trace ID (used for dummy HPROF_TRACE record)
    83.6  enum {
    83.7 -  STACK_TRACE_ID = 1
    83.8 +  STACK_TRACE_ID = 1,
    83.9 +  INITIAL_CLASS_COUNT = 200
   83.10  };
   83.11  
   83.12  
   83.13 @@ -408,6 +409,7 @@
   83.14    void write_u8(u8 x);
   83.15    void write_objectID(oop o);
   83.16    void write_classID(Klass* k);
   83.17 +  void write_id(u4 x);
   83.18  };
   83.19  
   83.20  DumpWriter::DumpWriter(const char* path) {
   83.21 @@ -548,6 +550,14 @@
   83.22  #endif
   83.23  }
   83.24  
   83.25 +void DumpWriter::write_id(u4 x) {
   83.26 +#ifdef _LP64
   83.27 +  write_u8((u8) x);
   83.28 +#else
   83.29 +  write_u4(x);
   83.30 +#endif
   83.31 +}
   83.32 +
   83.33  // We use java mirror as the class ID
   83.34  void DumpWriter::write_classID(Klass* k) {
   83.35    write_objectID(k->java_mirror());
   83.36 @@ -596,6 +606,8 @@
   83.37    static void dump_object_array(DumpWriter* writer, objArrayOop array);
   83.38    // creates HPROF_GC_PRIM_ARRAY_DUMP record for the given type array
   83.39    static void dump_prim_array(DumpWriter* writer, typeArrayOop array);
   83.40 +  // create HPROF_FRAME record for the given method and bci
   83.41 +  static void dump_stack_frame(DumpWriter* writer, int frame_serial_num, int class_serial_num, methodOop m, int bci);
   83.42  };
   83.43  
   83.44  // write a header of the given type
   83.45 @@ -1070,6 +1082,29 @@
   83.46    }
   83.47  }
   83.48  
   83.49 +// create a HPROF_FRAME record of the given methodOop and bci
   83.50 +void DumperSupport::dump_stack_frame(DumpWriter* writer,
   83.51 +                                     int frame_serial_num,
   83.52 +                                     int class_serial_num,
   83.53 +                                     methodOop m,
   83.54 +                                     int bci) {
   83.55 +  int line_number;
   83.56 +  if (m->is_native()) {
   83.57 +    line_number = -3;  // native frame
   83.58 +  } else {
   83.59 +    line_number = m->line_number_from_bci(bci);
   83.60 +  }
   83.61 +
   83.62 +  write_header(writer, HPROF_FRAME, 4*oopSize + 2*sizeof(u4));
   83.63 +  writer->write_id(frame_serial_num);               // frame serial number
   83.64 +  writer->write_objectID(m->name());                // method's name
   83.65 +  writer->write_objectID(m->signature());           // method's signature
   83.66 +
   83.67 +  assert(Klass::cast(m->method_holder())->oop_is_instance(), "not instanceKlass");
   83.68 +  writer->write_objectID(instanceKlass::cast(m->method_holder())->source_file_name());  // source file name
   83.69 +  writer->write_u4(class_serial_num);               // class serial number
   83.70 +  writer->write_u4((u4) line_number);               // line number
   83.71 +}
   83.72  
   83.73  // Support class used to generate HPROF_UTF8 records from the entries in the
   83.74  // SymbolTable.
   83.75 @@ -1104,12 +1139,15 @@
   83.76   private:
   83.77    DumpWriter* _writer;
   83.78    u4 _thread_serial_num;
   83.79 +  int _frame_num;
   83.80    DumpWriter* writer() const                { return _writer; }
   83.81   public:
   83.82    JNILocalsDumper(DumpWriter* writer, u4 thread_serial_num) {
   83.83      _writer = writer;
   83.84      _thread_serial_num = thread_serial_num;
   83.85 +    _frame_num = -1;  // default - empty stack
   83.86    }
   83.87 +  void set_frame_number(int n) { _frame_num = n; }
   83.88    void do_oop(oop* obj_p);
   83.89    void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); }
   83.90  };
   83.91 @@ -1122,7 +1160,7 @@
   83.92      writer()->write_u1(HPROF_GC_ROOT_JNI_LOCAL);
   83.93      writer()->write_objectID(o);
   83.94      writer()->write_u4(_thread_serial_num);
   83.95 -    writer()->write_u4((u4)-1); // empty
   83.96 +    writer()->write_u4((u4)_frame_num);
   83.97    }
   83.98  }
   83.99  
  83.100 @@ -1269,6 +1307,9 @@
  83.101    bool _gc_before_heap_dump;
  83.102    bool _is_segmented_dump;
  83.103    jlong _dump_start;
  83.104 +  GrowableArray<Klass*>* _klass_map;
  83.105 +  ThreadStackTrace** _stack_traces;
  83.106 +  int _num_threads;
  83.107  
  83.108    // accessors
  83.109    DumpWriter* writer() const                    { return _writer; }
  83.110 @@ -1291,9 +1332,16 @@
  83.111    static void do_basic_type_array_class_dump(klassOop k);
  83.112  
  83.113    // HPROF_GC_ROOT_THREAD_OBJ records
  83.114 -  void do_thread(JavaThread* thread, u4 thread_serial_num);
  83.115 +  int do_thread(JavaThread* thread, u4 thread_serial_num);
  83.116    void do_threads();
  83.117  
  83.118 +  void add_class_serial_number(Klass* k, int serial_num) {
  83.119 +    _klass_map->at_put_grow(serial_num, k);
  83.120 +  }
  83.121 +
  83.122 +  // HPROF_TRACE and HPROF_FRAME records
  83.123 +  void dump_stack_traces();
  83.124 +
  83.125    // writes a HPROF_HEAP_DUMP or HPROF_HEAP_DUMP_SEGMENT record
  83.126    void write_dump_header();
  83.127  
  83.128 @@ -1313,6 +1361,18 @@
  83.129      _gc_before_heap_dump = gc_before_heap_dump;
  83.130      _is_segmented_dump = false;
  83.131      _dump_start = (jlong)-1;
  83.132 +    _klass_map = new (ResourceObj::C_HEAP) GrowableArray<Klass*>(INITIAL_CLASS_COUNT, true);
  83.133 +    _stack_traces = NULL;
  83.134 +    _num_threads = 0;
  83.135 +  }
  83.136 +  ~VM_HeapDumper() {
  83.137 +    if (_stack_traces != NULL) {
  83.138 +      for (int i=0; i < _num_threads; i++) {
  83.139 +        delete _stack_traces[i];
  83.140 +      }
  83.141 +      FREE_C_HEAP_ARRAY(ThreadStackTrace*, _stack_traces);
  83.142 +    }
  83.143 +    delete _klass_map;
  83.144    }
  83.145  
  83.146    VMOp_Type type() const { return VMOp_HeapDumper; }
  83.147 @@ -1436,6 +1496,9 @@
  83.148      Klass* klass = Klass::cast(k);
  83.149      writer->write_classID(klass);
  83.150  
  83.151 +    // add the klassOop and class serial number pair
  83.152 +    dumper->add_class_serial_number(klass, class_serial_num);
  83.153 +
  83.154      writer->write_u4(STACK_TRACE_ID);
  83.155  
  83.156      // class name ID
  83.157 @@ -1465,15 +1528,15 @@
  83.158  // Walk the stack of the given thread.
  83.159  // Dumps a HPROF_GC_ROOT_JAVA_FRAME record for each local
  83.160  // Dumps a HPROF_GC_ROOT_JNI_LOCAL record for each JNI local
  83.161 -void VM_HeapDumper::do_thread(JavaThread* java_thread, u4 thread_serial_num) {
  83.162 +//
  83.163 +// It returns the number of Java frames in this thread stack
  83.164 +int VM_HeapDumper::do_thread(JavaThread* java_thread, u4 thread_serial_num) {
  83.165    JNILocalsDumper blk(writer(), thread_serial_num);
  83.166  
  83.167    oop threadObj = java_thread->threadObj();
  83.168    assert(threadObj != NULL, "sanity check");
  83.169  
  83.170 -  // JNI locals for the top frame
  83.171 -  java_thread->active_handles()->oops_do(&blk);
  83.172 -
  83.173 +  int stack_depth = 0;
  83.174    if (java_thread->has_last_Java_frame()) {
  83.175  
  83.176      // vframes are resource allocated
  83.177 @@ -1484,13 +1547,14 @@
  83.178      RegisterMap reg_map(java_thread);
  83.179      frame f = java_thread->last_frame();
  83.180      vframe* vf = vframe::new_vframe(&f, &reg_map, java_thread);
  83.181 +    frame* last_entry_frame = NULL;
  83.182  
  83.183      while (vf != NULL) {
  83.184 +      blk.set_frame_number(stack_depth);
  83.185        if (vf->is_java_frame()) {
  83.186  
  83.187          // java frame (interpreted, compiled, ...)
  83.188          javaVFrame *jvf = javaVFrame::cast(vf);
  83.189 -
  83.190          if (!(jvf->method()->is_native())) {
  83.191            StackValueCollection* locals = jvf->locals();
  83.192            for (int slot=0; slot<locals->size(); slot++) {
  83.193 @@ -1501,44 +1565,61 @@
  83.194                  writer()->write_u1(HPROF_GC_ROOT_JAVA_FRAME);
  83.195                  writer()->write_objectID(o);
  83.196                  writer()->write_u4(thread_serial_num);
  83.197 -                writer()->write_u4((u4)-1); // empty
  83.198 +                writer()->write_u4((u4) stack_depth);
  83.199                }
  83.200              }
  83.201            }
  83.202 +        } else {
  83.203 +          // native frame
  83.204 +          if (stack_depth == 0) {
  83.205 +            // JNI locals for the top frame.
  83.206 +            java_thread->active_handles()->oops_do(&blk);
  83.207 +          } else {
  83.208 +            if (last_entry_frame != NULL) {
  83.209 +              // JNI locals for the entry frame
  83.210 +              assert(last_entry_frame->is_entry_frame(), "checking");
  83.211 +              last_entry_frame->entry_frame_call_wrapper()->handles()->oops_do(&blk);
  83.212 +            }
  83.213 +          }
  83.214          }
  83.215 +        // increment only for Java frames
  83.216 +        stack_depth++;
  83.217 +        last_entry_frame = NULL;
  83.218 +
  83.219        } else {
  83.220 -
  83.221          // externalVFrame - if it's an entry frame then report any JNI locals
  83.222 -        // as roots
  83.223 +        // as roots when we find the corresponding native javaVFrame
  83.224          frame* fr = vf->frame_pointer();
  83.225          assert(fr != NULL, "sanity check");
  83.226          if (fr->is_entry_frame()) {
  83.227 -          fr->entry_frame_call_wrapper()->handles()->oops_do(&blk);
  83.228 +          last_entry_frame = fr;
  83.229          }
  83.230        }
  83.231 -
  83.232        vf = vf->sender();
  83.233      }
  83.234 +  } else {
  83.235 +    // no last java frame but there may be JNI locals
  83.236 +    java_thread->active_handles()->oops_do(&blk);
  83.237    }
  83.238 +  return stack_depth;
  83.239  }
  83.240  
  83.241  
  83.242  // write a HPROF_GC_ROOT_THREAD_OBJ record for each java thread. Then walk
  83.243  // the stack so that locals and JNI locals are dumped.
  83.244  void VM_HeapDumper::do_threads() {
  83.245 -  u4 thread_serial_num = 0;
  83.246 -  for (JavaThread* thread = Threads::first(); thread != NULL ; thread = thread->next()) {
  83.247 +  for (int i=0; i < _num_threads; i++) {
  83.248 +    JavaThread* thread = _stack_traces[i]->thread();
  83.249      oop threadObj = thread->threadObj();
  83.250 -    if (threadObj != NULL && !thread->is_exiting() && !thread->is_hidden_from_external_view()) {
  83.251 -      ++thread_serial_num;
  83.252 -
  83.253 -      writer()->write_u1(HPROF_GC_ROOT_THREAD_OBJ);
  83.254 -      writer()->write_objectID(threadObj);
  83.255 -      writer()->write_u4(thread_serial_num);
  83.256 -      writer()->write_u4(STACK_TRACE_ID);
  83.257 -
  83.258 -      do_thread(thread, thread_serial_num);
  83.259 -    }
  83.260 +    u4 thread_serial_num = i+1;
  83.261 +    u4 stack_serial_num = thread_serial_num + STACK_TRACE_ID;
  83.262 +    writer()->write_u1(HPROF_GC_ROOT_THREAD_OBJ);
  83.263 +    writer()->write_objectID(threadObj);
  83.264 +    writer()->write_u4(thread_serial_num);  // thread number
  83.265 +    writer()->write_u4(stack_serial_num);   // stack trace serial number
  83.266 +    int num_frames = do_thread(thread, thread_serial_num);
  83.267 +    assert(num_frames == _stack_traces[i]->get_stack_depth(),
  83.268 +           "total number of Java frames not matched");
  83.269    }
  83.270  }
  83.271  
  83.272 @@ -1547,16 +1628,16 @@
  83.273  // records:
  83.274  //
  83.275  //  HPROF_HEADER
  83.276 -//  HPROF_TRACE
  83.277  //  [HPROF_UTF8]*
  83.278  //  [HPROF_LOAD_CLASS]*
  83.279 +//  [[HPROF_FRAME]*|HPROF_TRACE]*
  83.280  //  [HPROF_GC_CLASS_DUMP]*
  83.281  //  HPROF_HEAP_DUMP
  83.282  //
  83.283 -// The HPROF_TRACE record after the header is "dummy trace" record which does
  83.284 -// not include any frames. Other records which require a stack trace ID will
  83.285 -// specify the trace ID of this record (1). It also means we can run HAT without
  83.286 -// needing the -stack false option.
  83.287 +// The HPROF_TRACE records represent the stack traces where the heap dump
  83.288 +// is generated and a "dummy trace" record which does not include
  83.289 +// any frames. The dummy trace record is used to be referenced as the
  83.290 +// unknown object alloc site.
  83.291  //
  83.292  // The HPROF_HEAP_DUMP record has a length following by sub-records. To allow
  83.293  // the heap dump be generated in a single pass we remember the position of
  83.294 @@ -1592,12 +1673,6 @@
  83.295    writer()->write_u4(oopSize);
  83.296    writer()->write_u8(os::javaTimeMillis());
  83.297  
  83.298 -  // HPROF_TRACE record without any frames
  83.299 -  DumperSupport::write_header(writer(), HPROF_TRACE, 3*sizeof(u4));
  83.300 -  writer()->write_u4(STACK_TRACE_ID);
  83.301 -  writer()->write_u4(0);                    // thread number
  83.302 -  writer()->write_u4(0);                    // frame count
  83.303 -
  83.304    // HPROF_UTF8 records
  83.305    SymbolTableDumper sym_dumper(writer());
  83.306    SymbolTable::oops_do(&sym_dumper);
  83.307 @@ -1606,6 +1681,10 @@
  83.308    SystemDictionary::classes_do(&do_load_class);
  83.309    Universe::basic_type_classes_do(&do_load_class);
  83.310  
  83.311 +  // write HPROF_FRAME and HPROF_TRACE records
  83.312 +  // this must be called after _klass_map is built when iterating the classes above.
  83.313 +  dump_stack_traces();
  83.314 +
  83.315    // write HPROF_HEAP_DUMP or HPROF_HEAP_DUMP_SEGMENT
  83.316    write_dump_header();
  83.317  
  83.318 @@ -1646,6 +1725,47 @@
  83.319    end_of_dump();
  83.320  }
  83.321  
  83.322 +void VM_HeapDumper::dump_stack_traces() {
  83.323 +  // write a HPROF_TRACE record without any frames to be referenced as object alloc sites
  83.324 +  DumperSupport::write_header(writer(), HPROF_TRACE, 3*sizeof(u4));
  83.325 +  writer()->write_u4((u4) STACK_TRACE_ID);
  83.326 +  writer()->write_u4(0);                    // thread number
  83.327 +  writer()->write_u4(0);                    // frame count
  83.328 +
  83.329 +  _stack_traces = NEW_C_HEAP_ARRAY(ThreadStackTrace*, Threads::number_of_threads());
  83.330 +  int frame_serial_num = 0;
  83.331 +  for (JavaThread* thread = Threads::first(); thread != NULL ; thread = thread->next()) {
  83.332 +    oop threadObj = thread->threadObj();
  83.333 +    if (threadObj != NULL && !thread->is_exiting() && !thread->is_hidden_from_external_view()) {
  83.334 +      // dump thread stack trace
  83.335 +      ThreadStackTrace* stack_trace = new ThreadStackTrace(thread, false);
  83.336 +      stack_trace->dump_stack_at_safepoint(-1);
  83.337 +      _stack_traces[_num_threads++] = stack_trace;
  83.338 +
  83.339 +      // write HPROF_FRAME records for this thread's stack trace
  83.340 +      int depth = stack_trace->get_stack_depth();
  83.341 +      int thread_frame_start = frame_serial_num;
  83.342 +      for (int j=0; j < depth; j++) {
  83.343 +        StackFrameInfo* frame = stack_trace->stack_frame_at(j);
  83.344 +        methodOop m = frame->method();
  83.345 +        int class_serial_num = _klass_map->find(Klass::cast(m->method_holder()));
  83.346 +        // the class serial number starts from 1
  83.347 +        assert(class_serial_num > 0, "class not found");
  83.348 +        DumperSupport::dump_stack_frame(writer(), ++frame_serial_num, class_serial_num, m, frame->bci());
  83.349 +      }
  83.350 +
  83.351 +      // write HPROF_TRACE record for one thread
  83.352 +      DumperSupport::write_header(writer(), HPROF_TRACE, 3*sizeof(u4) + depth*oopSize);
  83.353 +      int stack_serial_num = _num_threads + STACK_TRACE_ID;
  83.354 +      writer()->write_u4(stack_serial_num);      // stack trace serial number
  83.355 +      writer()->write_u4((u4) _num_threads);     // thread serial number
  83.356 +      writer()->write_u4(depth);                 // frame count
  83.357 +      for (int j=1; j <= depth; j++) {
  83.358 +        writer()->write_id(thread_frame_start + j);
  83.359 +      }
  83.360 +    }
  83.361 +  }
  83.362 +}
  83.363  
  83.364  // dump the heap to given path.
  83.365  int HeapDumper::dump(const char* path) {
    84.1 --- a/src/share/vm/services/threadService.hpp	Tue Oct 14 10:15:33 2008 -0400
    84.2 +++ b/src/share/vm/services/threadService.hpp	Fri Oct 17 15:18:02 2008 -0700
    84.3 @@ -242,6 +242,7 @@
    84.4    ThreadStackTrace(JavaThread* thread, bool with_locked_monitors);
    84.5    ~ThreadStackTrace();
    84.6  
    84.7 +  JavaThread*     thread()              { return _thread; }
    84.8    StackFrameInfo* stack_frame_at(int i) { return _frames->at(i); }
    84.9    int             get_stack_depth()     { return _depth; }
   84.10  
    85.1 --- a/src/share/vm/utilities/macros.hpp	Tue Oct 14 10:15:33 2008 -0400
    85.2 +++ b/src/share/vm/utilities/macros.hpp	Fri Oct 17 15:18:02 2008 -0700
    85.3 @@ -1,5 +1,5 @@
    85.4  /*
    85.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    85.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    85.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    85.8   *
    85.9   * This code is free software; you can redistribute it and/or modify it

mercurial