--- a/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
6838c1a3296aaa3572364d2ce7d70826cee96286 jdk7-b33
90cf935adb353bb0af4b46fb0677e841fd24c000 jdk7-b34
6d909d5803e3a22850e6c4e5a75b888742ee7e20 jdk7-b35
+d718a441936196b93d8bc9f084933af9a4c2a350 jdk7-b36
--- a/.hgtags-top-repo Mon Sep 29 22:10:00 2008 -0700
+++ b/.hgtags-top-repo Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
bb1ef4ee3d2c8cbf43a37d372325a7952be590b9 jdk7-b33
46a989ab932992b2084b946eeb322fa99b9fee6c jdk7-b34
143c1abedb7d3095eff0f9ee5fec9bf48e3490fc jdk7-b35
+4b4f5fea8d7d0743f0c30d91fcd9bf9d96e5d2ad jdk7-b36
--- a/corba/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
6a5b9d2f8b20de54e3bfe33cd12bd0793caedc4e jdk7-b33
0a812b9824e5d17b073765d1505594b49ff88a10 jdk7-b34
3867c4d14a5bfdbb37c97b4874ccb0ee5343111c jdk7-b35
+0723891eb8d1c27e67c54163af0b4cea05a4e036 jdk7-b36
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/org_omg_CosNaming.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/org_omg_CosNaming.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/org_omg_DynamicAny.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/org_omg_DynamicAny.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/com/sun/corba/se/sources/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/com/sun/corba/se/sources/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/javax/xa/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/javax/xa/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/corba/make/org/omg/CORBA/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/corba/make/org/omg/CORBA/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/hotspot/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
585535ec8a14adafa6bfea65d6975e29094c8cec jdk7-b33
5251a9cd8eb8743eee647365bee1c8afdc131556 jdk7-b34
5fa96a5a7e76da7c8dad12486293a0456c2c116c jdk7-b35
+e91159f921a58af3698e6479ea1fc5818da66d09 jdk7-b36
--- a/hotspot/agent/make/bugspot.bat Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/bugspot.bat Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
REM
-REM Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+REM Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/build.xml Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/build.xml Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/hsdb.bat Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/hsdb.bat Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
REM
-REM Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+REM Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/hsdb.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/hsdb.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/saenv.bat Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/saenv.bat Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+REM Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/saenv.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/saenv.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/saenv64.bat Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/saenv64.bat Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+REM Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/make/saenv64.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/make/saenv64.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/dump_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/dump_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/dump_x86_64.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/dump_x86_64.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/icache_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/icache_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/solaris/vm/osThread_solaris.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/os/solaris/vm/osThread_solaris.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
//
-// Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+// Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/asm/assembler.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/asm/assembler.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_FrameMap.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_FrameMap.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LIR.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LIR.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_LinearScan.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/ci/ciTypeFlow.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/ci/ciTypeFlow.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/code/relocInfo.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/code/relocInfo.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/includeDB_features Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/includeDB_features Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
//
-// Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+// Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/memory/blockOffsetTable.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/memory/blockOffsetTable.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/memory/compactingPermGenGen.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/memory/compactingPermGenGen.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/block.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/block.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/callGenerator.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/callGenerator.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/coalesce.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/coalesce.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/idealGraphPrinter.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/idealGraphPrinter.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/ifg.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/ifg.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/ifnode.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/ifnode.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/reg_split.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/opto/reg_split.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/statSampler.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/runtime/statSampler.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/threadLocalStorage.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/runtime/threadLocalStorage.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/threadLocalStorage.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/runtime/threadLocalStorage.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/virtualspace.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/runtime/virtualspace.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/virtualspace.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/runtime/virtualspace.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/macros.hpp Mon Sep 29 22:10:00 2008 -0700
+++ b/hotspot/src/share/vm/utilities/macros.hpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jaxp/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/jaxp/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
95375835527f0bf06124ce984266e2ad5de8a6dc jdk7-b33
01facdf8cabdeaaf68cca037aef56cc5f074897f jdk7-b34
eac46d1eb7f0935ba04f1c7929ec15423fd0309e jdk7-b35
+c84ca638db42a8b6b227b4e3b63bca192c5ca634 jdk7-b36
--- a/jaxws/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/jaxws/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
6dcbcfb9551aaa2a80906c28ab48c9a8564e0e64 jdk7-b33
7a9f629cd957e3169a1a769f763fe060d078785c jdk7-b34
b0f01c2508b690dd225298edfec70b5e8b8dc367 jdk7-b35
+f60187f44a0d62906a5e2f6bd0989b5b24c1ca1e jdk7-b36
--- a/jdk/make/com/sun/inputmethods/indicim/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/com/sun/inputmethods/indicim/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/com/sun/inputmethods/thaiim/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/com/sun/inputmethods/thaiim/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/com/sun/java/pack/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/com/sun/java/pack/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/com/sun/security/auth/module/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/com/sun/security/auth/module/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/BuildToolJar.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/BuildToolJar.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/Demo.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/Demo.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/Library.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/Library.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/internal/ImportComponents.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/internal/ImportComponents.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/shared/Defs-java.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/shared/Defs-java.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/common/shared/Defs-windows.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/common/shared/Defs-windows.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/fdlibm/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/fdlibm/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/hpi/windows/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/hpi/windows/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/java/FILES_java.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/java/FILES_java.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/java_crw_demo/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/java_crw_demo/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/java_hprof_demo/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/java_hprof_demo/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/management/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/management/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/net/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/net/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/net/mapfile-vers Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/net/mapfile-vers Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/nio/FILES_java.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/nio/FILES_java.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/nio/genCoder.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/nio/genCoder.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#! /bin/sh
#
-# Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/npt/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/npt/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/java/zip/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/java/zip/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/javax/swing/beaninfo/SwingBeans.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/javax/swing/beaninfo/SwingBeans.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/jpda/back/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/jpda/back/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/jpda/transport/shmem/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/jpda/transport/shmem/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/jpda/transport/socket/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/jpda/transport/socket/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/jprt.properties Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/jprt.properties Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/mksample/nio/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/mksample/nio/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/mksample/nio/multicast/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/mksample/nio/multicast/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/netbeans/jconsole/build.properties Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/netbeans/jconsole/build.properties Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
--- a/jdk/make/netbeans/jconsole/build.xml Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/netbeans/jconsole/build.xml Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
<!--
- Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
--- a/jdk/make/sun/cmm/kcms/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/cmm/kcms/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/font/t2k/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/font/t2k/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/image/generic/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/image/generic/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/image/vis/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/image/vis/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/jconsole/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/jconsole/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/jdbc/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/jdbc/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/jpeg/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/jpeg/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/net/spi/nameservice/dns/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/net/spi/nameservice/dns/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/text/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/make/sun/text/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/back/ThreadReferenceImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/back/ThreadReferenceImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/back/eventFilter.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/back/eventFilter.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/back/transport.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/back/transport.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/defaults/JmxProperties.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/defaults/JmxProperties.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/DaemonThreadFactory.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/DaemonThreadFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/EventBuffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/EventBuffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/EventClientFactory.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/EventClientFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/EventConnection.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/EventConnection.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/EventParams.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/EventParams.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/LeaseManager.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/LeaseManager.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/LeaseRenewer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/LeaseRenewer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/ReceiverBuffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/ReceiverBuffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/event/RepeatedSingletonJob.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/event/RepeatedSingletonJob.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/DynamicMBean2.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/DynamicMBean2.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotifySupport.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotifySupport.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerThreadGroupPool.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerThreadGroupPool.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanIntrospector.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanIntrospector.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/SunJmxMBeanServer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/SunJmxMBeanServer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/ProxyInputStream.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/ProxyInputStream.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/ProxyRef.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/ProxyRef.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/EventClientConnection.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/remote/util/EventClientConnection.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/tools/jdi/MonitorInfoImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jdi/MonitorInfoImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/tools/jdi/VMAction.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jdi/VMAction.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/tools/jdi/VMState.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jdi/VMState.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/awt/EventQueue.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/awt/EventQueue.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/lang/AbstractStringBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/lang/AbstractStringBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/lang/StringBuffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/lang/StringBuffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1994-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1994-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/lang/StringBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/lang/StringBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/net/Inet6Address.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/net/Inet6Address.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/Bits.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/Bits.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/Heap-X-Buffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/Heap-X-Buffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/X-Buffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/X-Buffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/DatagramChannel.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/DatagramChannel.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/SelectionKey.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/SelectionKey.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/ServerSocketChannel.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/ServerSocketChannel.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/SocketChannel.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/SocketChannel.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/exceptions Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/exceptions Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/package-info.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/package-info.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/spi/AbstractSelector.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/channels/spi/AbstractSelector.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/charset/Charset-X-Coder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/charset/Charset-X-Coder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/charset/CoderResult.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/nio/charset/CoderResult.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/util/CurrencyData.properties Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/util/CurrencyData.properties Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/util/EnumSet.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/util/EnumSet.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/util/Timer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/java/util/Timer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/Description.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/Description.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/Descriptor.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/Descriptor.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Portions Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Portions Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/DescriptorFields.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/DescriptorFields.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/DescriptorKey.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/DescriptorKey.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/DynamicWrapperMBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/DynamicWrapperMBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/Impact.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/Impact.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/InstanceNotFoundException.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/InstanceNotFoundException.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanOperationInfo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanOperationInfo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanPermission.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanPermission.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanRegistration.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanRegistration.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanServerConnection.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanServerConnection.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanServerDelegate.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanServerDelegate.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanServerFactory.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanServerFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanServerNotification.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/MBeanServerNotification.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/ManagedAttribute.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/ManagedAttribute.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/ManagedOperation.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/ManagedOperation.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/NotificationInfo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/NotificationInfo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/NotificationInfos.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/NotificationInfos.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/SendNotification.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/SendNotification.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/StandardEmitterMBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/StandardEmitterMBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventClient.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventClient.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventClientDelegate.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventClientDelegate.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventClientDelegateMBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventClientDelegateMBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventClientNotFoundException.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventClientNotFoundException.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventConsumer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventConsumer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventForwarder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventForwarder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventReceiver.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventReceiver.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/EventRelay.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/EventRelay.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/FetchingEventForwarder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/FetchingEventForwarder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/ListenerInfo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/ListenerInfo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/NotificationManager.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/NotificationManager.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/RMIPushEventForwarder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/RMIPushEventForwarder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/RMIPushEventRelay.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/RMIPushEventRelay.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/event/RMIPushServer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/event/RMIPushServer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/JMXConnector.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/remote/JMXConnector.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/JMXConnectorServerMBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/remote/JMXConnectorServerMBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/net/ssl/SSLServerSocket.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/javax/net/ssl/SSLServerSocket.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/font/NullFontScaler.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/font/NullFontScaler.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/Net.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/Net.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/SelectorImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/SelectorImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/SelectorProviderImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/SelectorProviderImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/ServerSocketAdaptor.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketAdaptor.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/cs/standard-charsets Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/standard-charsets Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/reflect/generics/factory/CoreReflectionFactory.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/reflect/generics/factory/CoreReflectionFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/text/resources/FormatData_sv.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/text/resources/FormatData_sv.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Portions Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/tools/jconsole/Plotter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/Plotter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/tools/jmap/JMap.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jmap/JMap.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/demo/jvmti/hprof/hprof_io.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_io.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
--- a/jdk/src/share/demo/jvmti/hprof/hprof_util.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_util.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
--- a/jdk/src/share/native/java/net/net_util.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/native/java/net/net_util.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/native/java/nio/Bits.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/native/java/nio/Bits.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/transport/shmem/shmemBack.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/transport/shmem/shmemBack.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/transport/shmem/shmemBase.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/transport/shmem/shmemBase.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/transport/socket/socketTransport.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/transport/socket/socketTransport.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/transport/socket/sysSocket.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/share/transport/socket/sysSocket.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/net/SocketInputStream.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/net/SocketInputStream.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/net/SocketOutputStream.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/net/SocketOutputStream.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/net/linux_close.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/net/linux_close.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/net/net_util_md.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/net/net_util_md.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/java/nio/MappedByteBuffer.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/java/nio/MappedByteBuffer.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/EPollArrayWrapper.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/EPollArrayWrapper.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/FileKey.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/FileKey.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/InheritedChannel.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/InheritedChannel.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/Net.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/Net.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/native/sun/nio/ch/nio_util.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/nio_util.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/transport/socket/socket_md.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/solaris/transport/socket/socket_md.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/classes/sun/nio/ch/PipeImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/classes/sun/nio/ch/PipeImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/javavm/export/jvm_md.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/javavm/export/jvm_md.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/NetworkInterface.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/NetworkInterface.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/NetworkInterface.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/NetworkInterface.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/NetworkInterface_win9x.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/NetworkInterface_win9x.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/SocketOutputStream.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/SocketOutputStream.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/net/net_util_md.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/java/net/net_util_md.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/net/dns/ResolverConfigurationImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/net/dns/ResolverConfigurationImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/nio/ch/Net.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/nio/ch/Net.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/windows/ComCtl32Util.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/transport/socket/socket_md.c Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/transport/socket/socket_md.c Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/transport/socket/socket_md.h Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/src/windows/transport/socket/socket_md.h Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2000 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/ClassesByName2Test.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/ClassesByName2Test.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/ConnectedVMs.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/ConnectedVMs.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/MonitorFrameInfo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/MonitorFrameInfo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/Solaris32AndSolaris64Test.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/Solaris32AndSolaris64Test.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/ksh -p
#
-# Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/SourceNameFilterTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/SourceNameFilterTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/jdi/VMConnection.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/jdi/VMConnection.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/com/sun/net/httpserver/bugs/B6744329.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/com/sun/net/httpserver/bugs/B6744329.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/lang/management/ManagementFactory/ThreadMXBeanProxy.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/lang/management/ManagementFactory/ThreadMXBeanProxy.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/lang/management/ThreadMXBean/Locks.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/lang/management/ThreadMXBean/Locks.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/net/Inet6Address/serialize/Serialize.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/net/Inet6Address/serialize/Serialize.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/nio/channels/Selector/Wakeup.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/java/nio/channels/Selector/Wakeup.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/AnnotatedMBeanTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/AnnotatedMBeanTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/MBeanDescriptionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/MBeanDescriptionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/ParameterNameTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/ParameterNameTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/ResourceInjectionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/ResourceInjectionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/annot/Name.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/Introspector/annot/Name.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/MBeanInfo/NotificationInfoTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/MBeanInfo/NotificationInfoTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/MBeanServer/OldMBeanServerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/MBeanServer/OldMBeanServerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/MBeanServerFactory/NamedMBeanServerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/MBeanServerFactory/NamedMBeanServerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/ObjectName/ApplyWildcardTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/ObjectName/ApplyWildcardTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/ObjectName/SerialCompatTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/ObjectName/SerialCompatTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/AddRemoveListenerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/AddRemoveListenerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/CustomForwarderTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/CustomForwarderTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/EventManagerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/EventManagerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/FetchingTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/FetchingTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/LeaseTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/LeaseTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/ListenerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/ListenerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/NotSerializableNotifTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/NotSerializableNotifTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/PublishTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/PublishTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/ReconnectableConnectorTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/ReconnectableConnectorTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/eventService/SharingThreadTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/eventService/SharingThreadTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/ComparatorExceptionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/ComparatorExceptionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/GenericArrayTypeTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/GenericArrayTypeTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/LeakTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/LeakTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/MBeanOperationInfoTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/MBeanOperationInfoTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/MXBeanTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/MXBeanTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/SameObjectTwoNamesTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/SameObjectTwoNamesTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/ThreadMXBeanTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/ThreadMXBeanTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/mxbean/TigerMXBean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/mxbean/TigerMXBean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/connection/CloseServerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/connection/CloseServerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/connection/DeadLockTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/connection/DeadLockTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/connection/RMIExitTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/connection/RMIExitTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/connection/ReconnectTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/connection/ReconnectTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/loading/MissingClassTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/loading/MissingClassTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/AddRemoveTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/AddRemoveTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/DiffHBTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/DiffHBTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/EmptyDomainNotificationTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/EmptyDomainNotificationTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotifBufferSizePropertyNameTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotifBufferSizePropertyNameTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotificationAccessControllerTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotificationAccessControllerTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotificationBufferCreationTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotificationBufferCreationTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/NotificationEmissionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/NotificationEmissionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/RMINotifTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/RMINotifTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/notif/UnexpectedNotifTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/management/remote/mandatory/notif/UnexpectedNotifTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/E4XErrorTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/E4XErrorTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/JavaScriptScopeTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/JavaScriptScopeTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/NullUndefinedVarTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/NullUndefinedVarTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/PluggableContextTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/PluggableContextTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/ProviderTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/ProviderTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/RhinoExceptionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/RhinoExceptionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test1.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test1.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test2.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test2.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test3.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test3.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test4.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test4.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test5.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test5.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test6.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test6.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test7.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test7.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/Test8.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/Test8.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/script/VersionTest.java Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/javax/script/VersionTest.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/common.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/common.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscript-DTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscript-DTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscript-argsTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscript-argsTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscript-cpTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscript-cpTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscript-eTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscript-eTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscript-fTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscript-fTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/sun/tools/jrunscript/jrunscriptTest.sh Mon Sep 29 22:10:00 2008 -0700
+++ b/jdk/test/sun/tools/jrunscript/jrunscriptTest.sh Sat Oct 04 22:48:54 2008 -0700
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/langtools/.hgtags Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/.hgtags Sat Oct 04 22:48:54 2008 -0700
@@ -10,3 +10,4 @@
0a5f04fb72825302a80a67c636a7ddc410ead266 jdk7-b33
4026dece07e86ae75154c05b98ba342d00828ed7 jdk7-b34
81f66dd906eb28e43bcaa66c092e794f59a4e52d jdk7-b35
+258af9b67b7cb4262ab1b5424160c9ad22d52e8f jdk7-b36
--- a/langtools/src/share/classes/com/sun/source/util/Trees.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/source/util/Trees.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.DeclaredType;
+import javax.lang.model.type.ErrorType;
import javax.lang.model.type.TypeMirror;
import javax.tools.JavaCompiler.CompilationTask;
@@ -177,4 +178,11 @@
* @return true if {@code member} is accessible in {@code type}
*/
public abstract boolean isAccessible(Scope scope, Element member, DeclaredType type);
+
+ /**
+ * Gets the original type from the ErrorType object.
+ * @param errorType The errorType for which we want to get the original type.
+ * @returns javax.lang.model.type.TypeMirror corresponding to the original type, replaced by the ErrorType.
+ */
+ public abstract TypeMirror getOriginalType(ErrorType errorType);
}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@
import com.sun.tools.javac.comp.Attr;
import com.sun.tools.javac.comp.Enter;
import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
/**
@@ -42,7 +42,7 @@
public class AptEnv {
- public Name.Table names; // javac's name table
+ public Names names; // javac's name table
public Symtab symtab; // javac's predefined symbols
public Types jctypes; // javac's type utilities
public Enter enter; // javac's enter phase
@@ -66,7 +66,7 @@
private AptEnv(Context context) {
context.put(aptEnvKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
symtab = Symtab.instance(context);
jctypes = Types.instance(context);
enter = Enter.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/apt/util/Bark.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/util/Bark.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/Server.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/Server.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacScope.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacScope.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -27,6 +27,7 @@
import java.io.File;
import java.io.IOException;
+import java.nio.CharBuffer;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -45,7 +46,7 @@
import com.sun.tools.javac.main.*;
import com.sun.tools.javac.model.*;
import com.sun.tools.javac.parser.Parser;
-import com.sun.tools.javac.parser.Scanner;
+import com.sun.tools.javac.parser.ParserFactory;
import com.sun.tools.javac.tree.*;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.util.*;
@@ -93,6 +94,9 @@
args.getClass();
context.getClass();
fileObjects.getClass();
+
+ // force the use of the scanner that captures Javadoc comments
+ com.sun.tools.javac.parser.DocCommentScanner.Factory.preRegister(context);
}
JavacTaskImpl(JavacTool tool,
@@ -166,8 +170,6 @@
if (!filenames.isEmpty())
throw new IllegalArgumentException("Malformed arguments " + filenames.toString(" "));
compiler = JavaCompiler.instance(context);
- // force the use of the scanner that captures Javadoc comments
- com.sun.tools.javac.parser.DocCommentScanner.Factory.preRegister(context);
compiler.keepComments = true;
compiler.genEndPos = true;
// NOTE: this value will be updated after annotation processing
@@ -519,14 +521,12 @@
throw new IllegalArgumentException();
compiler = JavaCompiler.instance(context);
JavaFileObject prev = compiler.log.useSource(null);
- Scanner.Factory scannerFactory = Scanner.Factory.instance(context);
- Parser.Factory parserFactory = Parser.Factory.instance(context);
+ ParserFactory parserFactory = ParserFactory.instance(context);
Attr attr = Attr.instance(context);
try {
- Scanner scanner = scannerFactory.newScanner((expr+"\u0000").toCharArray(),
- expr.length());
- Parser parser = parserFactory.newParser(scanner, false, false);
- JCTree tree = parser.type();
+ CharBuffer buf = CharBuffer.wrap((expr+"\u0000").toCharArray(), 0, expr.length());
+ Parser parser = parserFactory.newParser(buf, false, false, false);
+ JCTree tree = parser.parseType();
return attr.attribType(tree, (Symbol.TypeSymbol)scope);
} finally {
compiler.log.useSource(prev);
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -322,4 +322,18 @@
return t2;
}
}
+
+ /**
+ * Gets the original type from the ErrorType object.
+ * @param errorType The errorType for which we want to get the original type.
+ * @returns TypeMirror corresponding to the original type, replaced by the ErrorType.
+ * noType (type.tag == NONE) is returned if there is no original type.
+ */
+ public TypeMirror getOriginalType(javax.lang.model.type.ErrorType errorType) {
+ if (errorType instanceof com.sun.tools.javac.code.Type.ErrorType) {
+ return ((com.sun.tools.javac.code.Type.ErrorType)errorType).getOriginalType();
+ }
+
+ return com.sun.tools.javac.code.Type.noType;
+ }
}
--- a/langtools/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Attribute.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Attribute.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -166,7 +166,7 @@
first = false;
Name name = value.fst.name;
- if (len > 1 || name != name.table.value) {
+ if (len > 1 || name != name.table.names.value) {
buf.append(name);
buf.append('=');
}
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -145,7 +145,7 @@
assert shared == 0;
if (table != next.table) return next;
while (elems != null) {
- int hash = elems.sym.name.index & hashMask;
+ int hash = elems.sym.name.hashCode() & hashMask;
Entry e = table[hash];
assert e == elems : elems.sym;
table[hash] = elems.shadowed;
@@ -180,7 +180,7 @@
private void copy(Entry e) {
if (e.sym != null) {
copy(e.shadowed);
- int hash = e.sym.name.index & hashMask;
+ int hash = e.sym.name.hashCode() & hashMask;
e.shadowed = table[hash];
table[hash] = e;
}
@@ -206,7 +206,7 @@
assert shared == 0;
// Temporarily disabled (bug 6460352):
// if (nelems * 3 >= hashMask * 2) dble();
- int hash = sym.name.index & hashMask;
+ int hash = sym.name.hashCode() & hashMask;
Entry e = makeEntry(sym, table[hash], elems, s, origin);
table[hash] = e;
elems = e;
@@ -227,9 +227,9 @@
if (e.scope == null) return;
// remove e from table and shadowed list;
- Entry te = table[sym.name.index & hashMask];
+ Entry te = table[sym.name.hashCode() & hashMask];
if (te == e)
- table[sym.name.index & hashMask] = e.shadowed;
+ table[sym.name.hashCode() & hashMask] = e.shadowed;
else while (true) {
if (te.shadowed == e) {
te.shadowed = e.shadowed;
@@ -279,7 +279,7 @@
* for regular entries.
*/
public Entry lookup(Name name) {
- Entry e = table[name.index & hashMask];
+ Entry e = table[name.hashCode() & hashMask];
while (e.scope != null && e.sym.name != name)
e = e.shadowed;
return e;
@@ -400,7 +400,7 @@
}
public Entry lookup(Name name) {
- Entry e = table[name.index & hashMask];
+ Entry e = table[name.hashCode() & hashMask];
while (e.scope != null &&
(e.sym.name != name ||
/* Since an inner class will show up in package and
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java Sat Oct 04 22:48:54 2008 -0700
@@ -146,14 +146,14 @@
* the default package; otherwise, the owner symbol is returned
*/
public Symbol location() {
- if (owner.name == null || (owner.name.len == 0 && owner.kind != PCK)) {
+ if (owner.name == null || (owner.name.isEmpty() && owner.kind != PCK)) {
return null;
}
return owner;
}
public Symbol location(Type site, Types types) {
- if (owner.name == null || owner.name.len == 0) {
+ if (owner.name == null || owner.name.isEmpty()) {
return location();
}
if (owner.type.tag == CLASS) {
@@ -177,7 +177,7 @@
*/
public Type externalType(Types types) {
Type t = erasure(types);
- if (name == name.table.init && owner.hasOuterInstance()) {
+ if (name == name.table.names.init && owner.hasOuterInstance()) {
Type outerThisType = types.erasure(owner.type.getEnclosingType());
return new MethodType(t.getParameterTypes().prepend(outerThisType),
t.getReturnType(),
@@ -212,7 +212,7 @@
/** Is this symbol a constructor?
*/
public boolean isConstructor() {
- return name == name.table.init;
+ return name == name.table.names.init;
}
/** The fully qualified name of this symbol.
@@ -501,7 +501,7 @@
|| (owner.kind == TYP && owner.type.tag == TYPEVAR)
)) return name;
Name prefix = owner.getQualifiedName();
- if (prefix == null || prefix == prefix.table.empty)
+ if (prefix == null || prefix == prefix.table.names.empty)
return name;
else return prefix.append('.', name);
}
@@ -516,7 +516,7 @@
) return name;
char sep = owner.kind == TYP ? '$' : '.';
Name prefix = owner.flatName();
- if (prefix == null || prefix == prefix.table.empty)
+ if (prefix == null || prefix == prefix.table.names.empty)
return name;
else return prefix.append(sep, name);
}
@@ -737,7 +737,7 @@
}
public String className() {
- if (name.len == 0)
+ if (name.isEmpty())
return
Log.getLocalizedString("anonymous.class", flatname);
else
@@ -776,7 +776,7 @@
} catch (CompletionFailure ex) {
// quiet error recovery
flags_field |= (PUBLIC|STATIC);
- this.type = new ErrorType(this);
+ this.type = new ErrorType(this, Type.noType);
throw ex;
}
}
@@ -1011,7 +1011,7 @@
if ((flags() & BLOCK) != 0) {
return owner.name.toString();
} else {
- String s = (name == name.table.init)
+ String s = (name == name.table.names.init)
? owner.name.toString()
: name.toString();
if (type != null) {
@@ -1208,9 +1208,9 @@
}
public ElementKind getKind() {
- if (name == name.table.init)
+ if (name == name.table.names.init)
return ElementKind.CONSTRUCTOR;
- else if (name == name.table.clinit)
+ else if (name == name.table.names.clinit)
return ElementKind.STATIC_INIT;
else
return ElementKind.METHOD;
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,7 @@
public final Type botType = new BottomType();
public final JCNoType voidType = new JCNoType(TypeTags.VOID);
- private final Name.Table names;
+ private final Names names;
private final ClassReader reader;
private final Target target;
@@ -93,8 +93,7 @@
*/
public final ClassSymbol errSymbol;
- /** An instance of the error type.
- */
+ /** A value for the errType, with a originalType of noType */
public final Type errType;
/** A value for the unknown type. */
@@ -329,7 +328,7 @@
protected Symtab(Context context) throws CompletionFailure {
context.put(symtabKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
target = Target.instance(context);
// Create the unknown type
@@ -348,7 +347,7 @@
// create the error symbols
errSymbol = new ClassSymbol(PUBLIC|STATIC|ACYCLIC, names.any, null, rootPackage);
- errType = new ErrorType(errSymbol);
+ errType = new ErrorType(errSymbol, Type.noType);
// initialize builtin types
initType(byteType, "byte", "Byte");
@@ -389,6 +388,9 @@
scope.enter(booleanType.tsym);
scope.enter(errType.tsym);
+ // Enter symbol for the errSymbol
+ scope.enter(errSymbol);
+
classes.put(predefClass.fullname, predefClass);
reader = ClassReader.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java Sat Oct 04 22:48:54 2008 -0700
@@ -599,14 +599,14 @@
}
//where
private String className(Symbol sym, boolean longform) {
- if (sym.name.len == 0 && (sym.flags() & COMPOUND) != 0) {
+ if (sym.name.isEmpty() && (sym.flags() & COMPOUND) != 0) {
StringBuffer s = new StringBuffer(supertype_field.toString());
for (List<Type> is=interfaces_field; is.nonEmpty(); is = is.tail) {
s.append("&");
s.append(is.head.toString());
}
return s.toString();
- } else if (sym.name.len == 0) {
+ } else if (sym.name.isEmpty()) {
String s;
ClassType norm = (ClassType) tsym.type;
if (norm == null) {
@@ -1194,21 +1194,24 @@
public static class ErrorType extends ClassType
implements javax.lang.model.type.ErrorType {
- public ErrorType() {
+ private Type originalType = null;
+
+ public ErrorType(Type originalType, TypeSymbol tsym) {
super(noType, List.<Type>nil(), null);
tag = ERROR;
+ this.tsym = tsym;
+ this.originalType = (originalType == null ? noType : originalType);
}
- public ErrorType(ClassSymbol c) {
- this();
- tsym = c;
+ public ErrorType(ClassSymbol c, Type originalType) {
+ this(originalType, c);
c.type = this;
c.kind = ERR;
c.members_field = new Scope.ErrorScope(c);
}
- public ErrorType(Name name, TypeSymbol container) {
- this(new ClassSymbol(PUBLIC|STATIC|ACYCLIC, name, null, container));
+ public ErrorType(Name name, TypeSymbol container, Type originalType) {
+ this(new ClassSymbol(PUBLIC|STATIC|ACYCLIC, name, null, container), originalType);
}
@Override
@@ -1234,6 +1237,10 @@
return TypeKind.ERROR;
}
+ public Type getOriginalType() {
+ return originalType;
+ }
+
public <R, P> R accept(TypeVisitor<R, P> v, P p) {
return v.visitError(this, p);
}
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Sat Oct 04 22:48:54 2008 -0700
@@ -67,7 +67,7 @@
new Context.Key<Types>();
final Symtab syms;
- final Name.Table names;
+ final Names names;
final boolean allowBoxing;
final ClassReader reader;
final Source source;
@@ -86,7 +86,7 @@
protected Types(Context context) {
context.put(typesKey, this);
syms = Symtab.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
allowBoxing = Source.instance(context).allowBoxing();
reader = ClassReader.instance(context);
source = Source.instance(context);
@@ -2187,6 +2187,20 @@
};
// </editor-fold>
+ // <editor-fold defaultstate="collapsed" desc="createErrorType">
+ public Type createErrorType(Type originalType) {
+ return new ErrorType(originalType, syms.errSymbol);
+ }
+
+ public Type createErrorType(ClassSymbol c, Type originalType) {
+ return new ErrorType(c, originalType);
+ }
+
+ public Type createErrorType(Name name, TypeSymbol container, Type originalType) {
+ return new ErrorType(name, container, originalType);
+ }
+ // </editor-fold>
+
// <editor-fold defaultstate="collapsed" desc="rank">
/**
* The rank of a class is the length of the longest path between
@@ -2199,7 +2213,7 @@
ClassType cls = (ClassType)t;
if (cls.rank_field < 0) {
Name fullname = cls.tsym.getQualifiedName();
- if (fullname == fullname.table.java_lang_Object)
+ if (fullname == names.java_lang_Object)
cls.rank_field = 0;
else {
int r = rank(supertype(cls));
@@ -2604,7 +2618,7 @@
if (!bound.isInterface())
classCount++;
if (classCount > 1)
- return syms.errType;
+ return createErrorType(t);
}
return makeCompoundType(bounds);
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -55,7 +55,7 @@
final TreeMaker make;
final Log log;
final Symtab syms;
- final Name.Table names;
+ final Names names;
final Resolve rs;
final Types types;
final ConstFold cfolder;
@@ -67,7 +67,7 @@
make = TreeMaker.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
rs = Resolve.instance(context);
types = Types.instance(context);
cfolder = ConstFold.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Sat Oct 04 22:48:54 2008 -0700
@@ -68,7 +68,7 @@
protected static final Context.Key<Attr> attrKey =
new Context.Key<Attr>();
- final Name.Table names;
+ final Names names;
final Log log;
final Symtab syms;
final Resolve rs;
@@ -92,7 +92,7 @@
protected Attr(Context context) {
context.put(attrKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
rs = Resolve.instance(context);
@@ -159,7 +159,7 @@
* If check succeeds, store type in tree and return it.
* If check fails, store errType in tree and return it.
* No checks are performed if the prototype is a method type.
- * Its not necessary in this case since we know that kind and type
+ * It is not necessary in this case since we know that kind and type
* are correct.
*
* @param tree The tree whose kind and type is checked
@@ -176,7 +176,7 @@
log.error(tree.pos(), "unexpected.type",
kindNames(pkind),
kindName(ownkind));
- owntype = syms.errType;
+ owntype = types.createErrorType(owntype);
}
}
tree.type = owntype;
@@ -524,7 +524,7 @@
// check that type variable is already visible
if (t.getUpperBound() == null) {
log.error(tree.pos(), "illegal.forward.ref");
- return syms.errType;
+ return types.createErrorType(t);
}
} else {
t = chk.checkClassType(tree.pos(), t, checkExtensible|!allowGenerics);
@@ -533,12 +533,12 @@
log.error(tree.pos(), "intf.expected.here");
// return errType is necessary since otherwise there might
// be undetected cycles which cause attribution to loop
- return syms.errType;
+ return types.createErrorType(t);
} else if (checkExtensible &&
classExpected &&
(t.tsym.flags() & INTERFACE) != 0) {
log.error(tree.pos(), "no.intf.expected.here");
- return syms.errType;
+ return types.createErrorType(t);
}
if (checkExtensible &&
((t.tsym.flags() & FINAL) != 0)) {
@@ -804,7 +804,7 @@
Type base = types.asSuper(exprType, syms.iterableType.tsym);
if (base == null) {
log.error(tree.expr.pos(), "foreach.not.applicable.to.type");
- elemtype = syms.errType;
+ elemtype = types.createErrorType(exprType);
} else {
List<Type> iterableParams = base.allparams();
elemtype = iterableParams.isEmpty()
@@ -1219,7 +1219,7 @@
if (methName == names._super) {
if (site == syms.objectType) {
log.error(tree.meth.pos(), "no.superclass", site);
- site = syms.errType;
+ site = types.createErrorType(syms.objectType);
} else {
site = types.supertype(site);
}
@@ -1351,7 +1351,7 @@
}
public void visitNewClass(JCNewClass tree) {
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
// The local environment of a class creation is
// a new environment nested in the current one.
@@ -1551,7 +1551,7 @@
}
public void visitNewArray(JCNewArray tree) {
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
Type elemtype;
if (tree.elemtype != null) {
elemtype = attribType(tree.elemtype, env);
@@ -1571,7 +1571,7 @@
log.error(tree.pos(), "illegal.initializer.for.type",
pt);
}
- elemtype = syms.errType;
+ elemtype = types.createErrorType(pt);
}
}
if (tree.elems != null) {
@@ -1631,7 +1631,7 @@
Symbol operator = tree.operator =
rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype);
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
if (operator.kind == MTH) {
owntype = (JCTree.PREINC <= tree.getTag() && tree.getTag() <= JCTree.POSTDEC)
? tree.arg.type
@@ -1667,7 +1667,7 @@
Symbol operator = tree.operator =
rs.resolveBinaryOperator(tree.pos(), tree.getTag(), env, left, right);
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
if (operator.kind == MTH) {
owntype = operator.type.getReturnType();
int opc = chk.checkOperator(tree.lhs.pos(),
@@ -1728,7 +1728,7 @@
}
public void visitIndexed(JCArrayAccess tree) {
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
Type atype = attribExpr(tree.indexed, env);
attribExpr(tree.index, env, syms.intType);
if (types.isArray(atype))
@@ -1849,7 +1849,7 @@
elt = ((ArrayType)elt).elemtype;
if (elt.tag == TYPEVAR) {
log.error(tree.pos(), "type.var.cant.be.deref");
- result = syms.errType;
+ result = types.createErrorType(tree.type);
return;
}
}
@@ -2009,7 +2009,7 @@
}
case ERROR:
// preserve identifier names through errors
- return new ErrorType(name, site.tsym).tsym;
+ return types.createErrorType(name, site.tsym, site).tsym;
default:
// The qualifier expression is of a primitive type -- only
// .class is allowed for these.
@@ -2059,7 +2059,7 @@
int pkind,
Type pt,
boolean useVarargs) {
- if (pt.isErroneous()) return syms.errType;
+ if (pt.isErroneous()) return types.createErrorType(site);
Type owntype; // The computed type of this identifier occurrence.
switch (sym.kind) {
case TYP:
@@ -2129,7 +2129,7 @@
for (List<Type> l = env.info.tvars; l.nonEmpty(); l = l.tail)
if (!owntype.contains(l.head)) {
log.error(tree.pos(), "undetermined.type", owntype1);
- owntype1 = syms.errType;
+ owntype1 = types.createErrorType(owntype1);
}
owntype = owntype1;
}
@@ -2332,7 +2332,7 @@
"internal.error.cant.instantiate",
sym, site,
Type.toString(pt.getParameterTypes()));
- owntype = syms.errType;
+ owntype = types.createErrorType(site);
} else {
// System.out.println("call : " + env.tree);
// System.out.println("method : " + owntype);
@@ -2454,7 +2454,7 @@
* before supertype structure is completely known
*/
public void visitTypeApply(JCTypeApply tree) {
- Type owntype = syms.errType;
+ Type owntype = types.createErrorType(tree.type);
// Attribute functor part of application and make sure it's a class.
Type clazztype = chk.checkClassType(tree.clazz.pos(), attribType(tree.clazz, env));
@@ -2498,7 +2498,7 @@
} else {
log.error(tree.pos(), "type.doesnt.take.params", clazztype.tsym);
}
- owntype = syms.errType;
+ owntype = types.createErrorType(tree.type);
}
}
result = check(tree, owntype, TYP, pkind, pt);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/AttrContext.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/AttrContext.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Sat Oct 04 22:48:54 2008 -0700
@@ -56,7 +56,7 @@
protected static final Context.Key<Check> checkKey =
new Context.Key<Check>();
- private final Name.Table names;
+ private final Names names;
private final Log log;
private final Symtab syms;
private final Infer infer;
@@ -82,7 +82,7 @@
protected Check(Context context) {
context.put(checkKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
infer = Infer.instance(context);
@@ -192,12 +192,12 @@
Type typeError(DiagnosticPosition pos, Object problem, Type found, Type req) {
log.error(pos, "prob.found.req",
problem, found, req);
- return syms.errType;
+ return types.createErrorType(found);
}
Type typeError(DiagnosticPosition pos, String problem, Type found, Type req, Object explanation) {
log.error(pos, "prob.found.req.1", problem, found, req, explanation);
- return syms.errType;
+ return types.createErrorType(found);
}
/** Report an error that wrong type tag was found.
@@ -208,7 +208,7 @@
*/
Type typeTagError(DiagnosticPosition pos, Object required, Object found) {
log.error(pos, "type.found.req", found, required);
- return syms.errType;
+ return types.createErrorType(found instanceof Type ? (Type)found : syms.errType);
}
/** Report an error that symbol cannot be referenced before super
@@ -348,11 +348,11 @@
return typeError(pos, diags.fragment("possible.loss.of.precision"), found, req);
if (found.isSuperBound()) {
log.error(pos, "assignment.from.super-bound", found);
- return syms.errType;
+ return types.createErrorType(found);
}
if (req.isExtendsBound()) {
log.error(pos, "assignment.to.extends-bound", req);
- return syms.errType;
+ return types.createErrorType(found);
}
return typeError(pos, diags.fragment("incompatible.types"), found, req);
}
@@ -378,7 +378,7 @@
log.error(pos,
"undetermined.type" + (d!=null ? ".1" : ""),
t, d);
- return syms.errType;
+ return types.createErrorType(pt);
} else {
JCDiagnostic d = ex.getDiagnostic();
return typeError(pos,
@@ -469,7 +469,7 @@
Type checkNonVoid(DiagnosticPosition pos, Type t) {
if (t.tag == VOID) {
log.error(pos, "void.not.allowed.here");
- return syms.errType;
+ return types.createErrorType(t);
} else {
return t;
}
@@ -521,7 +521,7 @@
t);
} else if (!types.isReifiable(t)) {
log.error(pos, "illegal.generic.type.for.instof");
- return syms.errType;
+ return types.createErrorType(t);
} else {
return t;
}
@@ -628,7 +628,7 @@
case TYP:
if (sym.isLocal()) {
mask = LocalClassFlags;
- if (sym.name.len == 0) { // Anonymous class
+ if (sym.name.isEmpty()) { // Anonymous class
// Anonymous classes in static methods are themselves static;
// that's why we admit STATIC here.
mask |= STATIC;
@@ -1542,7 +1542,7 @@
return;
if (seen.contains(t)) {
tv = (TypeVar)t;
- tv.bound = new ErrorType();
+ tv.bound = types.createErrorType(t);
log.error(pos, "cyclic.inheritance", t);
} else if (t.tag == TYPEVAR) {
tv = (TypeVar)t;
@@ -1597,11 +1597,11 @@
private void noteCyclic(DiagnosticPosition pos, ClassSymbol c) {
log.error(pos, "cyclic.inheritance", c);
for (List<Type> l=types.interfaces(c.type); l.nonEmpty(); l=l.tail)
- l.head = new ErrorType((ClassSymbol)l.head.tsym);
+ l.head = types.createErrorType((ClassSymbol)l.head.tsym, Type.noType);
Type st = types.supertype(c.type);
if (st.tag == CLASS)
- ((ClassType)c.type).supertype_field = new ErrorType((ClassSymbol)st.tsym);
- c.type = new ErrorType(c);
+ ((ClassType)c.type).supertype_field = types.createErrorType((ClassSymbol)st.tsym, Type.noType);
+ c.type = types.createErrorType(c, c.type);
c.flags_field |= ACYCLIC;
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -98,6 +98,7 @@
ClassReader reader;
Annotate annotate;
MemberEnter memberEnter;
+ Types types;
Lint lint;
JavaFileManager fileManager;
@@ -119,6 +120,7 @@
syms = Symtab.instance(context);
chk = Check.instance(context);
memberEnter = MemberEnter.instance(context);
+ types = Types.instance(context);
annotate = Annotate.instance(context);
lint = Lint.instance(context);
@@ -331,7 +333,7 @@
"class.public.should.be.in.file", tree.name);
}
} else {
- if (tree.name.len != 0 &&
+ if (!tree.name.isEmpty() &&
!chk.checkUniqueClassName(tree.pos(), tree.name, enclScope)) {
result = null;
return;
@@ -346,7 +348,7 @@
// We are seeing a local class.
c = reader.defineClass(tree.name, owner);
c.flatname = chk.localClassName(c);
- if (c.name.len != 0)
+ if (!c.name.isEmpty())
chk.checkTransparentClass(tree.pos(), c, env.info.scope);
}
}
@@ -355,7 +357,7 @@
// Enter class into `compiled' table and enclosing scope.
if (chk.compiled.get(c.flatname) != null) {
duplicateClass(tree.pos(), c);
- result = new ErrorType(tree.name, (TypeSymbol)owner);
+ result = types.createErrorType(tree.name, (TypeSymbol)owner, Type.noType);
tree.sym = (ClassSymbol)result.tsym;
return;
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Env.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Env.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -177,7 +177,7 @@
protected static final Context.Key<Flow> flowKey =
new Context.Key<Flow>();
- private final Name.Table names;
+ private final Names names;
private final Log log;
private final Symtab syms;
private final Types types;
@@ -195,7 +195,7 @@
protected Flow(Context context) {
context.put(flowKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
types = Types.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Sat Oct 04 22:48:54 2008 -0700
@@ -204,7 +204,7 @@
return true;
}
- /** Instaniate undetermined type variable to the lub of all its lower bounds.
+ /** Instantiate undetermined type variable to the lub of all its lower bounds.
* Throw a NoInstanceException if this not possible.
*/
void minimizeInst(UndetVar that, Warner warn) throws NoInstanceException {
@@ -216,7 +216,7 @@
else {
that.inst = types.lub(that.lobounds);
}
- if (that.inst == null || that.inst == syms.errType)
+ if (that.inst == null || that.inst.tag == ERROR)
throw ambiguousNoInstanceException
.setMessage("no.unique.minimal.instance.exists",
that.qtype, that.lobounds);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Sat Oct 04 22:48:54 2008 -0700
@@ -64,7 +64,7 @@
return instance;
}
- private Name.Table names;
+ private Names names;
private Log log;
private Symtab syms;
private Resolve rs;
@@ -85,7 +85,7 @@
protected Lower(Context context) {
context.put(lowerKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
rs = Resolve.instance(context);
@@ -1830,7 +1830,7 @@
}
VarSymbol var =
new VarSymbol(FINAL|SYNTHETIC,
- Name.fromString(names,
+ names.fromString(
target.syntheticNameChar()
+ "" + rval.hashCode()),
type,
@@ -3338,7 +3338,7 @@
ListBuffer<JCStatement> blockStatements = new ListBuffer<JCStatement>();
JCModifiers mod1 = make.Modifiers(0L);
- Name oName = Name.fromString(names, "o");
+ Name oName = names.fromString("o");
JCVariableDecl par1 = make.Param(oName, cdef.type, compareToSym);
JCIdent paramId1 = make.Ident(names.java_lang_Object);
@@ -3352,7 +3352,7 @@
JCTypeCast cast = make.TypeCast(castTargetIdent, par1UsageId);
cast.setType(castTargetIdent.type);
- Name otherName = Name.fromString(names, "other");
+ Name otherName = names.fromString("other");
VarSymbol otherVarSym = new VarSymbol(mod1.flags,
otherName,
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Sat Oct 04 22:48:54 2008 -0700
@@ -61,7 +61,7 @@
*/
final static boolean checkClash = true;
- private final Name.Table names;
+ private final Names names;
private final Enter enter;
private final Log log;
private final Check chk;
@@ -86,7 +86,7 @@
protected MemberEnter(Context context) {
context.put(memberEnterKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
enter = Enter.instance(context);
log = Log.instance(context);
chk = Check.instance(context);
@@ -919,7 +919,7 @@
List<Type> thrown = List.nil();
long ctorFlags = 0;
boolean based = false;
- if (c.name.len == 0) {
+ if (c.name.isEmpty()) {
JCNewClass nc = (JCNewClass)env.next.tree;
if (nc.constructor != null) {
Type superConstrType = types.memberType(c.type,
@@ -1068,7 +1068,7 @@
flags = (flags & ~AccessFlags) | PRIVATE | GENERATEDCONSTR;
} else
flags |= (c.flags() & AccessFlags) | GENERATEDCONSTR;
- if (c.name.len == 0) flags |= ANONCONSTR;
+ if (c.name.isEmpty()) flags |= ANONCONSTR;
JCTree result = make.MethodDef(
make.Modifiers(flags),
names.init,
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Sat Oct 04 22:48:54 2008 -0700
@@ -51,7 +51,7 @@
protected static final Context.Key<Resolve> resolveKey =
new Context.Key<Resolve>();
- Name.Table names;
+ Names names;
Log log;
Symtab syms;
Check chk;
@@ -86,7 +86,7 @@
typeNotFound = new
ResolveError(ABSENT_TYP, syms.errSymbol, "type not found");
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
chk = Check.instance(context);
infer = Infer.instance(context);
@@ -656,7 +656,7 @@
return new AmbiguityError(m1, m2);
// both abstract, neither overridden; merge throws clause and result type
Symbol result;
- Type result2 = mt2.getReturnType();;
+ Type result2 = mt2.getReturnType();
if (mt2.tag == FORALL)
result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars);
if (types.isSubtype(mt1.getReturnType(), result2)) {
@@ -1099,7 +1099,7 @@
if (sym == syms.errSymbol // preserve the symbol name through errors
|| ((sym.kind & ERRONEOUS) == 0 // make sure an error symbol is returned
&& (sym.kind & TYP) != 0))
- sym = new ErrorType(name, qualified?site.tsym:syms.noSymbol).tsym;
+ sym = types.createErrorType(name, qualified ? site.tsym : syms.noSymbol, sym.type).tsym;
}
return sym;
}
@@ -1538,7 +1538,7 @@
argtypes = List.nil();
if (typeargtypes == null)
typeargtypes = List.nil();
- if (name != name.table.error) {
+ if (name != names.error) {
KindName kindname = absentKind(kind);
Name idname = name;
if (kind >= WRONG_MTHS && kind <= ABSENT_MTH) {
@@ -1547,7 +1547,7 @@
name, argtypes);
return;
}
- if (name == name.table.init) {
+ if (name == names.init) {
kindname = KindName.CONSTRUCTOR;
idname = site.tsym.name;
}
@@ -1563,7 +1563,7 @@
kindName(ws.owner),
ws.owner.type,
explanation);
- } else if (site.tsym.name.len != 0) {
+ } else if (!site.tsym.name.isEmpty()) {
if (site.tsym.kind == PCK && !site.tsym.exists())
log.error(pos, "doesnt.exist", site.tsym);
else {
@@ -1601,9 +1601,9 @@
*/
boolean isOperator(Name name) {
int i = 0;
- while (i < name.len &&
- "+-~!*/%&|^<>=".indexOf(name.byteAt(i)) >= 0) i++;
- return i > 0 && i == name.len;
+ while (i < name.getByteLength() &&
+ "+-~!*/%&|^<>=".indexOf(name.getByteAt(i)) >= 0) i++;
+ return i > 0 && i == name.getByteLength();
}
}
@@ -1639,7 +1639,7 @@
void report(Log log, DiagnosticPosition pos, Type site, Name name,
List<Type> argtypes, List<Type> typeargtypes) {
if (sym.owner.type.tag != ERROR) {
- if (sym.name == sym.name.table.init && sym.owner != site.tsym)
+ if (sym.name == names.init && sym.owner != site.tsym)
new ResolveError(ABSENT_MTH, sym.owner, "absent method " + sym).report(
log, pos, site, name, argtypes, typeargtypes);
if ((sym.flags() & PUBLIC) != 0
@@ -1723,7 +1723,7 @@
else break;
}
Name sname = pair.sym1.name;
- if (sname == sname.table.init) sname = pair.sym1.owner.name;
+ if (sname == names.init) sname = pair.sym1.owner.name;
log.error(pos, "ref.ambiguous", sname,
kindName(pair.sym1),
pair.sym1,
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Sat Oct 04 22:48:54 2008 -0700
@@ -59,7 +59,7 @@
return instance;
}
- private Name.Table names;
+ private Names names;
private Log log;
private Symtab syms;
private TreeMaker make;
@@ -77,7 +77,7 @@
protected TransTypes(Context context) {
context.put(transTypesKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
enter = Enter.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -108,7 +108,7 @@
* converting '/' to '.'.
*/
public static byte[] internalize(Name name) {
- return internalize(name.table.names, name.index, name.len);
+ return internalize(name.getByteArray(), name.getByteOffset(), name.getByteLength());
}
/** Return external representation of buf[offset..offset+len-1],
@@ -128,7 +128,7 @@
* converting '/' to '.'.
*/
public static byte[] externalize(Name name) {
- return externalize(name.table.names, name.index, name.len);
+ return externalize(name.getByteArray(), name.getByteOffset(), name.getByteLength());
}
/************************************************************************
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Sat Oct 04 22:48:54 2008 -0700
@@ -122,7 +122,7 @@
Types types;
/** The name table. */
- final Name.Table names;
+ final Names names;
/** Force a completion failure on this name
*/
@@ -220,7 +220,7 @@
protected ClassReader(Context context, boolean definitive) {
if (definitive) context.put(classReaderKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
syms = Symtab.instance(context);
types = Types.instance(context);
fileManager = context.get(JavaFileManager.class);
@@ -516,14 +516,6 @@
int siglimit;
boolean sigEnterPhase = false;
- /** Convert signature to type, where signature is a name.
- */
- Type sigToType(Name sig) {
- return sig == null
- ? null
- : sigToType(sig.table.names, sig.index, sig.len);
- }
-
/** Convert signature to type, where signature is a byte array segment.
*/
Type sigToType(byte[] sig, int offset, int len) {
@@ -741,12 +733,6 @@
return head.tail;
}
- /** Convert signature to type parameters, where signature is a name.
- */
- List<Type> sigToTypeParams(Name name) {
- return sigToTypeParams(name.table.names, name.index, name.len);
- }
-
/** Convert signature to type parameters, where signature is a byte
* array segment.
*/
@@ -952,7 +938,7 @@
self.name = simpleBinaryName(self.flatname, c.flatname) ;
self.owner = m != null ? m : c;
- if (self.name.len == 0)
+ if (self.name.isEmpty())
self.fullname = null;
else
self.fullname = ClassSymbol.formFullName(self.name, self.owner);
@@ -1500,7 +1486,7 @@
// Sometimes anonymous classes don't have an outer
// instance, however, there is no reliable way to tell so
// we never strip this$n
- if (currentOwner.name.len != 0)
+ if (!currentOwner.name.isEmpty())
type = new MethodType(type.getParameterTypes().tail,
type.getReturnType(),
type.getThrownTypes(),
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
package com.sun.tools.javac.jvm;
import java.io.*;
-import java.util.*;
import java.util.Set;
import java.util.HashSet;
@@ -140,7 +139,7 @@
private final Log log;
/** The name table. */
- private final Name.Table names;
+ private final Names names;
/** Access to files. */
private final JavaFileManager fileManager;
@@ -166,7 +165,7 @@
context.put(classWriterKey, this);
log = Log.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
syms = Symtab.instance(context);
options = Options.instance(context);
target = Target.instance(context);
@@ -375,9 +374,7 @@
sigbuf.appendByte('.');
assert c.flatname.startsWith(c.owner.enclClass().flatname);
sigbuf.appendName(rawOuter
- ? c.flatname.subName(c.owner.enclClass()
- .flatname.len+1,
- c.flatname.len)
+ ? c.flatname.subName(c.owner.enclClass().flatname.getByteLength()+1,c.flatname.getByteLength())
: c.name);
} else {
sigbuf.appendBytes(externalize(c.flatname));
@@ -542,7 +539,7 @@
Name fieldName(Symbol sym) {
if (scramble && (sym.flags() & PRIVATE) != 0 ||
scrambleAll && (sym.flags() & (PROTECTED | PUBLIC)) == 0)
- return names.fromString("_$" + sym.name.index);
+ return names.fromString("_$" + sym.name.getIndex());
else
return sym.name;
}
@@ -917,7 +914,7 @@
databuf.appendChar(
inner.owner.kind == TYP ? pool.get(inner.owner) : 0);
databuf.appendChar(
- inner.name.len != 0 ? pool.get(inner.name) : 0);
+ !inner.name.isEmpty() ? pool.get(inner.name) : 0);
databuf.appendChar(flags);
}
endAttr(alenIdx);
@@ -1457,7 +1454,7 @@
try {
writeClassFile(out, c);
if (verbose)
- log.errWriter.println(log.getLocalizedString("verbose.wrote.file", outFile));
+ log.errWriter.println(Log.getLocalizedString("verbose.wrote.file", outFile));
out.close();
out = null;
} finally {
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,16 +52,16 @@
public enum StackMapFormat {
NONE,
CLDC {
- Name getAttributeName(Name.Table names) {
+ Name getAttributeName(Names names) {
return names.StackMap;
}
},
JSR202 {
- Name getAttributeName(Name.Table names) {
+ Name getAttributeName(Names names) {
return names.StackMapTable;
}
};
- Name getAttributeName(Name.Table names) {
+ Name getAttributeName(Names names) {
return names.empty;
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@
private final Check chk;
private final Resolve rs;
private final TreeMaker make;
- private final Name.Table names;
+ private final Names names;
private final Target target;
private final Type stringBufferType;
private final Map<Type,Symbol> stringBufferAppend;
@@ -92,7 +92,7 @@
protected Gen(Context context) {
context.put(genKey, this);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
syms = Symtab.instance(context);
chk = Check.instance(context);
@@ -365,7 +365,7 @@
private boolean isOddAccessName(Name name) {
return
name.startsWith(accessDollar) &&
- (name.byteAt(name.len - 1) & 1) == 1;
+ (name.getByteAt(name.getByteLength() - 1) & 1) == 1;
}
/* ************************************************************************
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Items.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Items.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Pool.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Pool.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Sat Oct 04 22:48:54 2008 -0700
@@ -236,7 +236,7 @@
/** The name table.
*/
- protected Name.Table names;
+ protected Names names;
/** The attributor.
*/
@@ -276,7 +276,7 @@
/** Factory for parsers.
*/
- protected Parser.Factory parserFactory;
+ protected ParserFactory parserFactory;
/** Optional listener for progress events
*/
@@ -310,7 +310,7 @@
if (context.get(JavaFileManager.class) == null)
JavacFileManager.preRegister(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
log = Log.instance(context);
diagFactory = JCDiagnostic.Factory.instance(context);
reader = ClassReader.instance(context);
@@ -320,7 +320,7 @@
todo = Todo.instance(context);
fileManager = context.get(JavaFileManager.class);
- parserFactory = Parser.Factory.instance(context);
+ parserFactory = ParserFactory.instance(context);
try {
// catch completion problems with predefineds
@@ -510,10 +510,6 @@
return parseErrors;
}
- protected Scanner.Factory getScannerFactory() {
- return Scanner.Factory.instance(context);
- }
-
/** Try to open input stream with given name.
* Report an error if this fails.
* @param filename The file name of the input stream to be opened.
@@ -545,13 +541,9 @@
taskListener.started(e);
}
int initialErrorCount = log.nerrors;
- Scanner scanner = getScannerFactory().newScanner(content);
- Parser parser = parserFactory.newParser(scanner, keepComments(), genEndPos);
- tree = parser.compilationUnit();
+ Parser parser = parserFactory.newParser(content, keepComments(), genEndPos, lineDebugInfo);
+ tree = parser.parseCompilationUnit();
parseErrors |= (log.nerrors > initialErrorCount);
- if (lineDebugInfo) {
- tree.lineMap = scanner.getLineMap();
- }
if (verbose) {
printVerbose("parsing.done", Long.toString(elapsed(msec)));
}
@@ -1419,7 +1411,7 @@
close(true);
}
- private void close(boolean disposeNames) {
+ public void close(boolean disposeNames) {
rootClasses = null;
reader = null;
make = null;
--- a/langtools/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -181,7 +181,7 @@
public void visitArray(Attribute.Array a) {
Name elemName = ((ArrayType) a.type).elemtype.tsym.name;
- if (elemName == elemName.table.java_lang_Class) { // Class[]
+ if (elemName == elemName.table.names.java_lang_Class) { // Class[]
// Construct a proxy for a MirroredTypesException
List<TypeMirror> elems = List.nil();
for (Attribute value : a.values) {
--- a/langtools/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/model/JavacElements.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/JavacElements.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,15 +39,14 @@
import com.sun.tools.javac.comp.AttrContext;
import com.sun.tools.javac.comp.Enter;
import com.sun.tools.javac.comp.Env;
-import com.sun.tools.javac.jvm.ClassReader;
import com.sun.tools.javac.main.JavaCompiler;
import com.sun.tools.javac.processing.PrintingProcessor;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.tree.TreeInfo;
import com.sun.tools.javac.tree.TreeScanner;
+import com.sun.tools.javac.util.*;
import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.*;
import static javax.lang.model.util.ElementFilter.methodsIn;
@@ -63,10 +62,9 @@
private JavaCompiler javaCompiler;
private Symtab syms;
- private Name.Table names;
+ private Names names;
private Types types;
private Enter enter;
- private ClassReader reader;
private static final Context.Key<JavacElements> KEY =
new Context.Key<JavacElements>();
@@ -96,10 +94,9 @@
public void setContext(Context context) {
javaCompiler = JavaCompiler.instance(context);
syms = Symtab.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
types = Types.instance(context);
enter = Enter.instance(context);
- reader = ClassReader.instance(context);
}
@@ -126,7 +123,7 @@
Class<A> annoType) {
boolean inherited = annoType.isAnnotationPresent(Inherited.class);
A result = null;
- while (annotated.name != annotated.name.table.java_lang_Object) {
+ while (annotated.name != annotated.name.table.names.java_lang_Object) {
result = getAnnotation((Symbol)annotated, annoType);
if (result != null || !inherited)
break;
@@ -568,7 +565,7 @@
}
public Name getName(CharSequence cs) {
- return Name.fromString(names, cs.toString());
+ return names.fromString(cs.toString());
}
/**
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentScanner.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentScanner.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,10 +41,10 @@
* This code and its internal interfaces are subject to change or
* deletion without notice.</b></p>
*/
-public class EndPosParser extends Parser {
+public class EndPosParser extends JavacParser {
- public EndPosParser(Factory fac, Lexer S, boolean keepDocComments) {
- super(fac, S, keepDocComments);
+ public EndPosParser(ParserFactory fac, Lexer S, boolean keepDocComments, boolean keepLineMap) {
+ super(fac, S, keepDocComments, keepLineMap);
this.S = S;
endPositions = new HashMap<JCTree,Integer>();
}
@@ -79,8 +79,8 @@
}
@Override
- public JCCompilationUnit compilationUnit() {
- JCCompilationUnit t = super.compilationUnit();
+ public JCCompilationUnit parseCompilationUnit() {
+ JCCompilationUnit t = super.parseCompilationUnit();
t.endPositions = endPositions;
return t;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,2819 @@
+/*
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.javac.parser;
+
+import java.util.*;
+
+import com.sun.tools.javac.tree.*;
+import com.sun.tools.javac.code.*;
+import com.sun.tools.javac.util.*;
+import com.sun.tools.javac.util.List;
+import static com.sun.tools.javac.util.ListBuffer.lb;
+
+import com.sun.tools.javac.tree.JCTree.*;
+
+import static com.sun.tools.javac.parser.Token.*;
+
+/** The parser maps a token sequence into an abstract syntax
+ * tree. It operates by recursive descent, with code derived
+ * systematically from an LL(1) grammar. For efficiency reasons, an
+ * operator precedence scheme is used for parsing binary operation
+ * expressions.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems. If
+ * you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class JavacParser implements Parser {
+
+ /** The number of precedence levels of infix operators.
+ */
+ private static final int infixPrecedenceLevels = 10;
+
+ /** The scanner used for lexical analysis.
+ */
+ private Lexer S;
+
+ /** The factory to be used for abstract syntax tree construction.
+ */
+ protected TreeMaker F;
+
+ /** The log to be used for error diagnostics.
+ */
+ private Log log;
+
+ /** The keyword table. */
+ private Keywords keywords;
+
+ /** The Source language setting. */
+ private Source source;
+
+ /** The name table. */
+ private Names names;
+
+ /** Construct a parser from a given scanner, tree factory and log.
+ */
+ protected JavacParser(ParserFactory fac,
+ Lexer S,
+ boolean keepDocComments,
+ boolean keepLineMap) {
+ this.S = S;
+ S.nextToken(); // prime the pump
+ this.F = fac.F;
+ this.log = fac.log;
+ this.names = fac.names;
+ this.keywords = fac.keywords;
+ this.source = fac.source;
+ this.allowGenerics = source.allowGenerics();
+ this.allowVarargs = source.allowVarargs();
+ this.allowAsserts = source.allowAsserts();
+ this.allowEnums = source.allowEnums();
+ this.allowForeach = source.allowForeach();
+ this.allowStaticImport = source.allowStaticImport();
+ this.allowAnnotations = source.allowAnnotations();
+ this.keepDocComments = keepDocComments;
+ if (keepDocComments)
+ docComments = new HashMap<JCTree,String>();
+ this.keepLineMap = keepLineMap;
+ this.errorTree = F.Erroneous();
+ }
+
+ /** Switch: Should generics be recognized?
+ */
+ boolean allowGenerics;
+
+ /** Switch: Should varargs be recognized?
+ */
+ boolean allowVarargs;
+
+ /** Switch: should we recognize assert statements, or just give a warning?
+ */
+ boolean allowAsserts;
+
+ /** Switch: should we recognize enums, or just give a warning?
+ */
+ boolean allowEnums;
+
+ /** Switch: should we recognize foreach?
+ */
+ boolean allowForeach;
+
+ /** Switch: should we recognize foreach?
+ */
+ boolean allowStaticImport;
+
+ /** Switch: should we recognize annotations?
+ */
+ boolean allowAnnotations;
+
+ /** Switch: should we keep docComments?
+ */
+ boolean keepDocComments;
+
+ /** Switch: should we keep line table?
+ */
+ boolean keepLineMap;
+
+ /** When terms are parsed, the mode determines which is expected:
+ * mode = EXPR : an expression
+ * mode = TYPE : a type
+ * mode = NOPARAMS : no parameters allowed for type
+ * mode = TYPEARG : type argument
+ */
+ static final int EXPR = 1;
+ static final int TYPE = 2;
+ static final int NOPARAMS = 4;
+ static final int TYPEARG = 8;
+
+ /** The current mode.
+ */
+ private int mode = 0;
+
+ /** The mode of the term that was parsed last.
+ */
+ private int lastmode = 0;
+
+/* ---------- error recovery -------------- */
+
+ private JCErroneous errorTree;
+
+ /** Skip forward until a suitable stop token is found.
+ */
+ private void skip(boolean stopAtImport, boolean stopAtMemberDecl, boolean stopAtIdentifier, boolean stopAtStatement) {
+ while (true) {
+ switch (S.token()) {
+ case SEMI:
+ S.nextToken();
+ return;
+ case PUBLIC:
+ case FINAL:
+ case ABSTRACT:
+ case MONKEYS_AT:
+ case EOF:
+ case CLASS:
+ case INTERFACE:
+ case ENUM:
+ return;
+ case IMPORT:
+ if (stopAtImport)
+ return;
+ break;
+ case LBRACE:
+ case RBRACE:
+ case PRIVATE:
+ case PROTECTED:
+ case STATIC:
+ case TRANSIENT:
+ case NATIVE:
+ case VOLATILE:
+ case SYNCHRONIZED:
+ case STRICTFP:
+ case LT:
+ case BYTE:
+ case SHORT:
+ case CHAR:
+ case INT:
+ case LONG:
+ case FLOAT:
+ case DOUBLE:
+ case BOOLEAN:
+ case VOID:
+ if (stopAtMemberDecl)
+ return;
+ break;
+ case IDENTIFIER:
+ if (stopAtIdentifier)
+ return;
+ break;
+ case CASE:
+ case DEFAULT:
+ case IF:
+ case FOR:
+ case WHILE:
+ case DO:
+ case TRY:
+ case SWITCH:
+ case RETURN:
+ case THROW:
+ case BREAK:
+ case CONTINUE:
+ case ELSE:
+ case FINALLY:
+ case CATCH:
+ if (stopAtStatement)
+ return;
+ break;
+ }
+ S.nextToken();
+ }
+ }
+
+ private JCErroneous syntaxError(int pos, String key, Token... args) {
+ return syntaxError(pos, null, key, args);
+ }
+
+ private JCErroneous syntaxError(int pos, List<JCTree> errs, String key, Token... args) {
+ setErrorEndPos(pos);
+ reportSyntaxError(pos, key, (Object[])args);
+ return toP(F.at(pos).Erroneous(errs));
+ }
+
+ private int errorPos = Position.NOPOS;
+ /**
+ * Report a syntax error at given position using the given
+ * argument unless one was already reported at the same position.
+ */
+ private void reportSyntaxError(int pos, String key, Object... args) {
+ if (pos > S.errPos() || pos == Position.NOPOS) {
+ if (S.token() == EOF)
+ log.error(pos, "premature.eof");
+ else
+ log.error(pos, key, args);
+ }
+ S.errPos(pos);
+ if (S.pos() == errorPos)
+ S.nextToken(); // guarantee progress
+ errorPos = S.pos();
+ }
+
+
+ /** Generate a syntax error at current position unless one was already
+ * reported at the same position.
+ */
+ private JCErroneous syntaxError(String key) {
+ return syntaxError(S.pos(), key);
+ }
+
+ /** Generate a syntax error at current position unless one was
+ * already reported at the same position.
+ */
+ private JCErroneous syntaxError(String key, Token arg) {
+ return syntaxError(S.pos(), key, arg);
+ }
+
+ /** If next input token matches given token, skip it, otherwise report
+ * an error.
+ */
+ public void accept(Token token) {
+ if (S.token() == token) {
+ S.nextToken();
+ } else {
+ setErrorEndPos(S.pos());
+ reportSyntaxError(S.prevEndPos(), "expected", token);
+ }
+ }
+
+ /** Report an illegal start of expression/type error at given position.
+ */
+ JCExpression illegal(int pos) {
+ setErrorEndPos(S.pos());
+ if ((mode & EXPR) != 0)
+ return syntaxError(pos, "illegal.start.of.expr");
+ else
+ return syntaxError(pos, "illegal.start.of.type");
+
+ }
+
+ /** Report an illegal start of expression/type error at current position.
+ */
+ JCExpression illegal() {
+ return illegal(S.pos());
+ }
+
+ /** Diagnose a modifier flag from the set, if any. */
+ void checkNoMods(long mods) {
+ if (mods != 0) {
+ long lowestMod = mods & -mods;
+ log.error(S.pos(), "mod.not.allowed.here",
+ Flags.asFlagSet(lowestMod));
+ }
+ }
+
+/* ---------- doc comments --------- */
+
+ /** A hashtable to store all documentation comments
+ * indexed by the tree nodes they refer to.
+ * defined only if option flag keepDocComment is set.
+ */
+ Map<JCTree, String> docComments;
+
+ /** Make an entry into docComments hashtable,
+ * provided flag keepDocComments is set and given doc comment is non-null.
+ * @param tree The tree to be used as index in the hashtable
+ * @param dc The doc comment to associate with the tree, or null.
+ */
+ void attach(JCTree tree, String dc) {
+ if (keepDocComments && dc != null) {
+// System.out.println("doc comment = ");System.out.println(dc);//DEBUG
+ docComments.put(tree, dc);
+ }
+ }
+
+/* -------- source positions ------- */
+
+ private int errorEndPos = -1;
+
+ private void setErrorEndPos(int errPos) {
+ if (errPos > errorEndPos)
+ errorEndPos = errPos;
+ }
+
+ protected int getErrorEndPos() {
+ return errorEndPos;
+ }
+
+ /**
+ * Store ending position for a tree.
+ * @param tree The tree.
+ * @param endpos The ending position to associate with the tree.
+ */
+ protected void storeEnd(JCTree tree, int endpos) {}
+
+ /**
+ * Store ending position for a tree. The ending position should
+ * be the ending position of the current token.
+ * @param t The tree.
+ */
+ protected <T extends JCTree> T to(T t) { return t; }
+
+ /**
+ * Store ending position for a tree. The ending position should
+ * be greater of the ending position of the previous token and errorEndPos.
+ * @param t The tree.
+ */
+ protected <T extends JCTree> T toP(T t) { return t; }
+
+ /** Get the start position for a tree node. The start position is
+ * defined to be the position of the first character of the first
+ * token of the node's source text.
+ * @param tree The tree node
+ */
+ public int getStartPos(JCTree tree) {
+ return TreeInfo.getStartPos(tree);
+ }
+
+ /**
+ * Get the end position for a tree node. The end position is
+ * defined to be the position of the last character of the last
+ * token of the node's source text. Returns Position.NOPOS if end
+ * positions are not generated or the position is otherwise not
+ * found.
+ * @param tree The tree node
+ */
+ public int getEndPos(JCTree tree) {
+ return Position.NOPOS;
+ }
+
+
+
+/* ---------- parsing -------------- */
+
+ /**
+ * Ident = IDENTIFIER
+ */
+ Name ident() {
+ if (S.token() == IDENTIFIER) {
+ Name name = S.name();
+ S.nextToken();
+ return name;
+ } else if (S.token() == ASSERT) {
+ if (allowAsserts) {
+ log.error(S.pos(), "assert.as.identifier");
+ S.nextToken();
+ return names.error;
+ } else {
+ log.warning(S.pos(), "assert.as.identifier");
+ Name name = S.name();
+ S.nextToken();
+ return name;
+ }
+ } else if (S.token() == ENUM) {
+ if (allowEnums) {
+ log.error(S.pos(), "enum.as.identifier");
+ S.nextToken();
+ return names.error;
+ } else {
+ log.warning(S.pos(), "enum.as.identifier");
+ Name name = S.name();
+ S.nextToken();
+ return name;
+ }
+ } else {
+ accept(IDENTIFIER);
+ return names.error;
+ }
+}
+
+ /**
+ * Qualident = Ident { DOT Ident }
+ */
+ public JCExpression qualident() {
+ JCExpression t = toP(F.at(S.pos()).Ident(ident()));
+ while (S.token() == DOT) {
+ int pos = S.pos();
+ S.nextToken();
+ t = toP(F.at(pos).Select(t, ident()));
+ }
+ return t;
+ }
+
+ /**
+ * Literal =
+ * INTLITERAL
+ * | LONGLITERAL
+ * | FLOATLITERAL
+ * | DOUBLELITERAL
+ * | CHARLITERAL
+ * | STRINGLITERAL
+ * | TRUE
+ * | FALSE
+ * | NULL
+ */
+ JCExpression literal(Name prefix) {
+ int pos = S.pos();
+ JCExpression t = errorTree;
+ switch (S.token()) {
+ case INTLITERAL:
+ try {
+ t = F.at(pos).Literal(
+ TypeTags.INT,
+ Convert.string2int(strval(prefix), S.radix()));
+ } catch (NumberFormatException ex) {
+ log.error(S.pos(), "int.number.too.large", strval(prefix));
+ }
+ break;
+ case LONGLITERAL:
+ try {
+ t = F.at(pos).Literal(
+ TypeTags.LONG,
+ new Long(Convert.string2long(strval(prefix), S.radix())));
+ } catch (NumberFormatException ex) {
+ log.error(S.pos(), "int.number.too.large", strval(prefix));
+ }
+ break;
+ case FLOATLITERAL: {
+ String proper = (S.radix() == 16 ? ("0x"+ S.stringVal()) : S.stringVal());
+ Float n;
+ try {
+ n = Float.valueOf(proper);
+ } catch (NumberFormatException ex) {
+ // error already repoted in scanner
+ n = Float.NaN;
+ }
+ if (n.floatValue() == 0.0f && !isZero(proper))
+ log.error(S.pos(), "fp.number.too.small");
+ else if (n.floatValue() == Float.POSITIVE_INFINITY)
+ log.error(S.pos(), "fp.number.too.large");
+ else
+ t = F.at(pos).Literal(TypeTags.FLOAT, n);
+ break;
+ }
+ case DOUBLELITERAL: {
+ String proper = (S.radix() == 16 ? ("0x"+ S.stringVal()) : S.stringVal());
+ Double n;
+ try {
+ n = Double.valueOf(proper);
+ } catch (NumberFormatException ex) {
+ // error already reported in scanner
+ n = Double.NaN;
+ }
+ if (n.doubleValue() == 0.0d && !isZero(proper))
+ log.error(S.pos(), "fp.number.too.small");
+ else if (n.doubleValue() == Double.POSITIVE_INFINITY)
+ log.error(S.pos(), "fp.number.too.large");
+ else
+ t = F.at(pos).Literal(TypeTags.DOUBLE, n);
+ break;
+ }
+ case CHARLITERAL:
+ t = F.at(pos).Literal(
+ TypeTags.CHAR,
+ S.stringVal().charAt(0) + 0);
+ break;
+ case STRINGLITERAL:
+ t = F.at(pos).Literal(
+ TypeTags.CLASS,
+ S.stringVal());
+ break;
+ case TRUE: case FALSE:
+ t = F.at(pos).Literal(
+ TypeTags.BOOLEAN,
+ (S.token() == TRUE ? 1 : 0));
+ break;
+ case NULL:
+ t = F.at(pos).Literal(
+ TypeTags.BOT,
+ null);
+ break;
+ default:
+ assert false;
+ }
+ if (t == errorTree)
+ t = F.at(pos).Erroneous();
+ storeEnd(t, S.endPos());
+ S.nextToken();
+ return t;
+ }
+//where
+ boolean isZero(String s) {
+ char[] cs = s.toCharArray();
+ int base = ((Character.toLowerCase(s.charAt(1)) == 'x') ? 16 : 10);
+ int i = ((base==16) ? 2 : 0);
+ while (i < cs.length && (cs[i] == '0' || cs[i] == '.')) i++;
+ return !(i < cs.length && (Character.digit(cs[i], base) > 0));
+ }
+
+ String strval(Name prefix) {
+ String s = S.stringVal();
+ return prefix.isEmpty() ? s : prefix + s;
+ }
+
+ /** terms can be either expressions or types.
+ */
+ public JCExpression parseExpression() {
+ return term(EXPR);
+ }
+
+ public JCExpression parseType() {
+ return term(TYPE);
+ }
+
+ JCExpression term(int newmode) {
+ int prevmode = mode;
+ mode = newmode;
+ JCExpression t = term();
+ lastmode = mode;
+ mode = prevmode;
+ return t;
+ }
+
+ /**
+ * Expression = Expression1 [ExpressionRest]
+ * ExpressionRest = [AssignmentOperator Expression1]
+ * AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" |
+ * "&=" | "|=" | "^=" |
+ * "%=" | "<<=" | ">>=" | ">>>="
+ * Type = Type1
+ * TypeNoParams = TypeNoParams1
+ * StatementExpression = Expression
+ * ConstantExpression = Expression
+ */
+ JCExpression term() {
+ JCExpression t = term1();
+ if ((mode & EXPR) != 0 &&
+ S.token() == EQ || PLUSEQ.compareTo(S.token()) <= 0 && S.token().compareTo(GTGTGTEQ) <= 0)
+ return termRest(t);
+ else
+ return t;
+ }
+
+ JCExpression termRest(JCExpression t) {
+ switch (S.token()) {
+ case EQ: {
+ int pos = S.pos();
+ S.nextToken();
+ mode = EXPR;
+ JCExpression t1 = term();
+ return toP(F.at(pos).Assign(t, t1));
+ }
+ case PLUSEQ:
+ case SUBEQ:
+ case STAREQ:
+ case SLASHEQ:
+ case PERCENTEQ:
+ case AMPEQ:
+ case BAREQ:
+ case CARETEQ:
+ case LTLTEQ:
+ case GTGTEQ:
+ case GTGTGTEQ:
+ int pos = S.pos();
+ Token token = S.token();
+ S.nextToken();
+ mode = EXPR;
+ JCExpression t1 = term();
+ return F.at(pos).Assignop(optag(token), t, t1);
+ default:
+ return t;
+ }
+ }
+
+ /** Expression1 = Expression2 [Expression1Rest]
+ * Type1 = Type2
+ * TypeNoParams1 = TypeNoParams2
+ */
+ JCExpression term1() {
+ JCExpression t = term2();
+ if ((mode & EXPR) != 0 && S.token() == QUES) {
+ mode = EXPR;
+ return term1Rest(t);
+ } else {
+ return t;
+ }
+ }
+
+ /** Expression1Rest = ["?" Expression ":" Expression1]
+ */
+ JCExpression term1Rest(JCExpression t) {
+ if (S.token() == QUES) {
+ int pos = S.pos();
+ S.nextToken();
+ JCExpression t1 = term();
+ accept(COLON);
+ JCExpression t2 = term1();
+ return F.at(pos).Conditional(t, t1, t2);
+ } else {
+ return t;
+ }
+ }
+
+ /** Expression2 = Expression3 [Expression2Rest]
+ * Type2 = Type3
+ * TypeNoParams2 = TypeNoParams3
+ */
+ JCExpression term2() {
+ JCExpression t = term3();
+ if ((mode & EXPR) != 0 && prec(S.token()) >= TreeInfo.orPrec) {
+ mode = EXPR;
+ return term2Rest(t, TreeInfo.orPrec);
+ } else {
+ return t;
+ }
+ }
+
+ /* Expression2Rest = {infixop Expression3}
+ * | Expression3 instanceof Type
+ * infixop = "||"
+ * | "&&"
+ * | "|"
+ * | "^"
+ * | "&"
+ * | "==" | "!="
+ * | "<" | ">" | "<=" | ">="
+ * | "<<" | ">>" | ">>>"
+ * | "+" | "-"
+ * | "*" | "/" | "%"
+ */
+ JCExpression term2Rest(JCExpression t, int minprec) {
+ List<JCExpression[]> savedOd = odStackSupply.elems;
+ JCExpression[] odStack = newOdStack();
+ List<Token[]> savedOp = opStackSupply.elems;
+ Token[] opStack = newOpStack();
+ // optimization, was odStack = new Tree[...]; opStack = new Tree[...];
+ int top = 0;
+ odStack[0] = t;
+ int startPos = S.pos();
+ Token topOp = ERROR;
+ while (prec(S.token()) >= minprec) {
+ opStack[top] = topOp;
+ top++;
+ topOp = S.token();
+ int pos = S.pos();
+ S.nextToken();
+ odStack[top] = topOp == INSTANCEOF ? parseType() : term3();
+ while (top > 0 && prec(topOp) >= prec(S.token())) {
+ odStack[top-1] = makeOp(pos, topOp, odStack[top-1],
+ odStack[top]);
+ top--;
+ topOp = opStack[top];
+ }
+ }
+ assert top == 0;
+ t = odStack[0];
+
+ if (t.getTag() == JCTree.PLUS) {
+ StringBuffer buf = foldStrings(t);
+ if (buf != null) {
+ t = toP(F.at(startPos).Literal(TypeTags.CLASS, buf.toString()));
+ }
+ }
+
+ odStackSupply.elems = savedOd; // optimization
+ opStackSupply.elems = savedOp; // optimization
+ return t;
+ }
+//where
+ /** Construct a binary or type test node.
+ */
+ private JCExpression makeOp(int pos,
+ Token topOp,
+ JCExpression od1,
+ JCExpression od2)
+ {
+ if (topOp == INSTANCEOF) {
+ return F.at(pos).TypeTest(od1, od2);
+ } else {
+ return F.at(pos).Binary(optag(topOp), od1, od2);
+ }
+ }
+ /** If tree is a concatenation of string literals, replace it
+ * by a single literal representing the concatenated string.
+ */
+ protected StringBuffer foldStrings(JCTree tree) {
+ List<String> buf = List.nil();
+ while (true) {
+ if (tree.getTag() == JCTree.LITERAL) {
+ JCLiteral lit = (JCLiteral) tree;
+ if (lit.typetag == TypeTags.CLASS) {
+ StringBuffer sbuf =
+ new StringBuffer((String)lit.value);
+ while (buf.nonEmpty()) {
+ sbuf.append(buf.head);
+ buf = buf.tail;
+ }
+ return sbuf;
+ }
+ } else if (tree.getTag() == JCTree.PLUS) {
+ JCBinary op = (JCBinary)tree;
+ if (op.rhs.getTag() == JCTree.LITERAL) {
+ JCLiteral lit = (JCLiteral) op.rhs;
+ if (lit.typetag == TypeTags.CLASS) {
+ buf = buf.prepend((String) lit.value);
+ tree = op.lhs;
+ continue;
+ }
+ }
+ }
+ return null;
+ }
+ }
+
+ /** optimization: To save allocating a new operand/operator stack
+ * for every binary operation, we use supplys.
+ */
+ ListBuffer<JCExpression[]> odStackSupply = new ListBuffer<JCExpression[]>();
+ ListBuffer<Token[]> opStackSupply = new ListBuffer<Token[]>();
+
+ private JCExpression[] newOdStack() {
+ if (odStackSupply.elems == odStackSupply.last)
+ odStackSupply.append(new JCExpression[infixPrecedenceLevels + 1]);
+ JCExpression[] odStack = odStackSupply.elems.head;
+ odStackSupply.elems = odStackSupply.elems.tail;
+ return odStack;
+ }
+
+ private Token[] newOpStack() {
+ if (opStackSupply.elems == opStackSupply.last)
+ opStackSupply.append(new Token[infixPrecedenceLevels + 1]);
+ Token[] opStack = opStackSupply.elems.head;
+ opStackSupply.elems = opStackSupply.elems.tail;
+ return opStack;
+ }
+
+ /** Expression3 = PrefixOp Expression3
+ * | "(" Expr | TypeNoParams ")" Expression3
+ * | Primary {Selector} {PostfixOp}
+ * Primary = "(" Expression ")"
+ * | Literal
+ * | [TypeArguments] THIS [Arguments]
+ * | [TypeArguments] SUPER SuperSuffix
+ * | NEW [TypeArguments] Creator
+ * | Ident { "." Ident }
+ * [ "[" ( "]" BracketsOpt "." CLASS | Expression "]" )
+ * | Arguments
+ * | "." ( CLASS | THIS | [TypeArguments] SUPER Arguments | NEW [TypeArguments] InnerCreator )
+ * ]
+ * | BasicType BracketsOpt "." CLASS
+ * PrefixOp = "++" | "--" | "!" | "~" | "+" | "-"
+ * PostfixOp = "++" | "--"
+ * Type3 = Ident { "." Ident } [TypeArguments] {TypeSelector} BracketsOpt
+ * | BasicType
+ * TypeNoParams3 = Ident { "." Ident } BracketsOpt
+ * Selector = "." [TypeArguments] Ident [Arguments]
+ * | "." THIS
+ * | "." [TypeArguments] SUPER SuperSuffix
+ * | "." NEW [TypeArguments] InnerCreator
+ * | "[" Expression "]"
+ * TypeSelector = "." Ident [TypeArguments]
+ * SuperSuffix = Arguments | "." Ident [Arguments]
+ */
+ protected JCExpression term3() {
+ int pos = S.pos();
+ JCExpression t;
+ List<JCExpression> typeArgs = typeArgumentsOpt(EXPR);
+ switch (S.token()) {
+ case QUES:
+ if ((mode & TYPE) != 0 && (mode & (TYPEARG|NOPARAMS)) == TYPEARG) {
+ mode = TYPE;
+ return typeArgument();
+ } else
+ return illegal();
+ case PLUSPLUS: case SUBSUB: case BANG: case TILDE: case PLUS: case SUB:
+ if (typeArgs == null && (mode & EXPR) != 0) {
+ Token token = S.token();
+ S.nextToken();
+ mode = EXPR;
+ if (token == SUB &&
+ (S.token() == INTLITERAL || S.token() == LONGLITERAL) &&
+ S.radix() == 10) {
+ mode = EXPR;
+ t = literal(names.hyphen);
+ } else {
+ t = term3();
+ return F.at(pos).Unary(unoptag(token), t);
+ }
+ } else return illegal();
+ break;
+ case LPAREN:
+ if (typeArgs == null && (mode & EXPR) != 0) {
+ S.nextToken();
+ mode = EXPR | TYPE | NOPARAMS;
+ t = term3();
+ if ((mode & TYPE) != 0 && S.token() == LT) {
+ // Could be a cast to a parameterized type
+ int op = JCTree.LT;
+ int pos1 = S.pos();
+ S.nextToken();
+ mode &= (EXPR | TYPE);
+ mode |= TYPEARG;
+ JCExpression t1 = term3();
+ if ((mode & TYPE) != 0 &&
+ (S.token() == COMMA || S.token() == GT)) {
+ mode = TYPE;
+ ListBuffer<JCExpression> args = new ListBuffer<JCExpression>();
+ args.append(t1);
+ while (S.token() == COMMA) {
+ S.nextToken();
+ args.append(typeArgument());
+ }
+ accept(GT);
+ t = F.at(pos1).TypeApply(t, args.toList());
+ checkGenerics();
+ t = bracketsOpt(toP(t));
+ } else if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ t = F.at(pos1).Binary(op, t, term2Rest(t1, TreeInfo.shiftPrec));
+ t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec)));
+ } else {
+ accept(GT);
+ }
+ } else {
+ t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec)));
+ }
+ accept(RPAREN);
+ lastmode = mode;
+ mode = EXPR;
+ if ((lastmode & EXPR) == 0) {
+ JCExpression t1 = term3();
+ return F.at(pos).TypeCast(t, t1);
+ } else if ((lastmode & TYPE) != 0) {
+ switch (S.token()) {
+ /*case PLUSPLUS: case SUBSUB: */
+ case BANG: case TILDE:
+ case LPAREN: case THIS: case SUPER:
+ case INTLITERAL: case LONGLITERAL: case FLOATLITERAL:
+ case DOUBLELITERAL: case CHARLITERAL: case STRINGLITERAL:
+ case TRUE: case FALSE: case NULL:
+ case NEW: case IDENTIFIER: case ASSERT: case ENUM:
+ case BYTE: case SHORT: case CHAR: case INT:
+ case LONG: case FLOAT: case DOUBLE: case BOOLEAN: case VOID:
+ JCExpression t1 = term3();
+ return F.at(pos).TypeCast(t, t1);
+ }
+ }
+ } else return illegal();
+ t = toP(F.at(pos).Parens(t));
+ break;
+ case THIS:
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ t = to(F.at(pos).Ident(names._this));
+ S.nextToken();
+ if (typeArgs == null)
+ t = argumentsOpt(null, t);
+ else
+ t = arguments(typeArgs, t);
+ typeArgs = null;
+ } else return illegal();
+ break;
+ case SUPER:
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ t = to(superSuffix(typeArgs, F.at(pos).Ident(names._super)));
+ typeArgs = null;
+ } else return illegal();
+ break;
+ case INTLITERAL: case LONGLITERAL: case FLOATLITERAL: case DOUBLELITERAL:
+ case CHARLITERAL: case STRINGLITERAL:
+ case TRUE: case FALSE: case NULL:
+ if (typeArgs == null && (mode & EXPR) != 0) {
+ mode = EXPR;
+ t = literal(names.empty);
+ } else return illegal();
+ break;
+ case NEW:
+ if (typeArgs != null) return illegal();
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ S.nextToken();
+ if (S.token() == LT) typeArgs = typeArguments();
+ t = creator(pos, typeArgs);
+ typeArgs = null;
+ } else return illegal();
+ break;
+ case IDENTIFIER: case ASSERT: case ENUM:
+ if (typeArgs != null) return illegal();
+ t = toP(F.at(S.pos()).Ident(ident()));
+ loop: while (true) {
+ pos = S.pos();
+ switch (S.token()) {
+ case LBRACKET:
+ S.nextToken();
+ if (S.token() == RBRACKET) {
+ S.nextToken();
+ t = bracketsOpt(t);
+ t = toP(F.at(pos).TypeArray(t));
+ t = bracketsSuffix(t);
+ } else {
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ JCExpression t1 = term();
+ t = to(F.at(pos).Indexed(t, t1));
+ }
+ accept(RBRACKET);
+ }
+ break loop;
+ case LPAREN:
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ t = arguments(typeArgs, t);
+ typeArgs = null;
+ }
+ break loop;
+ case DOT:
+ S.nextToken();
+ int oldmode = mode;
+ mode &= ~NOPARAMS;
+ typeArgs = typeArgumentsOpt(EXPR);
+ mode = oldmode;
+ if ((mode & EXPR) != 0) {
+ switch (S.token()) {
+ case CLASS:
+ if (typeArgs != null) return illegal();
+ mode = EXPR;
+ t = to(F.at(pos).Select(t, names._class));
+ S.nextToken();
+ break loop;
+ case THIS:
+ if (typeArgs != null) return illegal();
+ mode = EXPR;
+ t = to(F.at(pos).Select(t, names._this));
+ S.nextToken();
+ break loop;
+ case SUPER:
+ mode = EXPR;
+ t = to(F.at(pos).Select(t, names._super));
+ t = superSuffix(typeArgs, t);
+ typeArgs = null;
+ break loop;
+ case NEW:
+ if (typeArgs != null) return illegal();
+ mode = EXPR;
+ int pos1 = S.pos();
+ S.nextToken();
+ if (S.token() == LT) typeArgs = typeArguments();
+ t = innerCreator(pos1, typeArgs, t);
+ typeArgs = null;
+ break loop;
+ }
+ }
+ // typeArgs saved for next loop iteration.
+ t = toP(F.at(pos).Select(t, ident()));
+ break;
+ default:
+ break loop;
+ }
+ }
+ if (typeArgs != null) illegal();
+ t = typeArgumentsOpt(t);
+ break;
+ case BYTE: case SHORT: case CHAR: case INT: case LONG: case FLOAT:
+ case DOUBLE: case BOOLEAN:
+ if (typeArgs != null) illegal();
+ t = bracketsSuffix(bracketsOpt(basicType()));
+ break;
+ case VOID:
+ if (typeArgs != null) illegal();
+ if ((mode & EXPR) != 0) {
+ S.nextToken();
+ if (S.token() == DOT) {
+ JCPrimitiveTypeTree ti = toP(F.at(pos).TypeIdent(TypeTags.VOID));
+ t = bracketsSuffix(ti);
+ } else {
+ return illegal(pos);
+ }
+ } else {
+ return illegal();
+ }
+ break;
+ default:
+ return illegal();
+ }
+ if (typeArgs != null) illegal();
+ while (true) {
+ int pos1 = S.pos();
+ if (S.token() == LBRACKET) {
+ S.nextToken();
+ if ((mode & TYPE) != 0) {
+ int oldmode = mode;
+ mode = TYPE;
+ if (S.token() == RBRACKET) {
+ S.nextToken();
+ t = bracketsOpt(t);
+ t = toP(F.at(pos1).TypeArray(t));
+ return t;
+ }
+ mode = oldmode;
+ }
+ if ((mode & EXPR) != 0) {
+ mode = EXPR;
+ JCExpression t1 = term();
+ t = to(F.at(pos1).Indexed(t, t1));
+ }
+ accept(RBRACKET);
+ } else if (S.token() == DOT) {
+ S.nextToken();
+ typeArgs = typeArgumentsOpt(EXPR);
+ if (S.token() == SUPER && (mode & EXPR) != 0) {
+ mode = EXPR;
+ t = to(F.at(pos1).Select(t, names._super));
+ S.nextToken();
+ t = arguments(typeArgs, t);
+ typeArgs = null;
+ } else if (S.token() == NEW && (mode & EXPR) != 0) {
+ if (typeArgs != null) return illegal();
+ mode = EXPR;
+ int pos2 = S.pos();
+ S.nextToken();
+ if (S.token() == LT) typeArgs = typeArguments();
+ t = innerCreator(pos2, typeArgs, t);
+ typeArgs = null;
+ } else {
+ t = toP(F.at(pos1).Select(t, ident()));
+ t = argumentsOpt(typeArgs, typeArgumentsOpt(t));
+ typeArgs = null;
+ }
+ } else {
+ break;
+ }
+ }
+ while ((S.token() == PLUSPLUS || S.token() == SUBSUB) && (mode & EXPR) != 0) {
+ mode = EXPR;
+ t = to(F.at(S.pos()).Unary(
+ S.token() == PLUSPLUS ? JCTree.POSTINC : JCTree.POSTDEC, t));
+ S.nextToken();
+ }
+ return toP(t);
+ }
+
+ /** SuperSuffix = Arguments | "." [TypeArguments] Ident [Arguments]
+ */
+ JCExpression superSuffix(List<JCExpression> typeArgs, JCExpression t) {
+ S.nextToken();
+ if (S.token() == LPAREN || typeArgs != null) {
+ t = arguments(typeArgs, t);
+ } else {
+ int pos = S.pos();
+ accept(DOT);
+ typeArgs = (S.token() == LT) ? typeArguments() : null;
+ t = toP(F.at(pos).Select(t, ident()));
+ t = argumentsOpt(typeArgs, t);
+ }
+ return t;
+ }
+
+ /** BasicType = BYTE | SHORT | CHAR | INT | LONG | FLOAT | DOUBLE | BOOLEAN
+ */
+ JCPrimitiveTypeTree basicType() {
+ JCPrimitiveTypeTree t = to(F.at(S.pos()).TypeIdent(typetag(S.token())));
+ S.nextToken();
+ return t;
+ }
+
+ /** ArgumentsOpt = [ Arguments ]
+ */
+ JCExpression argumentsOpt(List<JCExpression> typeArgs, JCExpression t) {
+ if ((mode & EXPR) != 0 && S.token() == LPAREN || typeArgs != null) {
+ mode = EXPR;
+ return arguments(typeArgs, t);
+ } else {
+ return t;
+ }
+ }
+
+ /** Arguments = "(" [Expression { COMMA Expression }] ")"
+ */
+ List<JCExpression> arguments() {
+ ListBuffer<JCExpression> args = lb();
+ if (S.token() == LPAREN) {
+ S.nextToken();
+ if (S.token() != RPAREN) {
+ args.append(parseExpression());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ args.append(parseExpression());
+ }
+ }
+ accept(RPAREN);
+ } else {
+ syntaxError(S.pos(), "expected", LPAREN);
+ }
+ return args.toList();
+ }
+
+ JCMethodInvocation arguments(List<JCExpression> typeArgs, JCExpression t) {
+ int pos = S.pos();
+ List<JCExpression> args = arguments();
+ return toP(F.at(pos).Apply(typeArgs, t, args));
+ }
+
+ /** TypeArgumentsOpt = [ TypeArguments ]
+ */
+ JCExpression typeArgumentsOpt(JCExpression t) {
+ if (S.token() == LT &&
+ (mode & TYPE) != 0 &&
+ (mode & NOPARAMS) == 0) {
+ mode = TYPE;
+ checkGenerics();
+ return typeArguments(t);
+ } else {
+ return t;
+ }
+ }
+ List<JCExpression> typeArgumentsOpt() {
+ return typeArgumentsOpt(TYPE);
+ }
+
+ List<JCExpression> typeArgumentsOpt(int useMode) {
+ if (S.token() == LT) {
+ checkGenerics();
+ if ((mode & useMode) == 0 ||
+ (mode & NOPARAMS) != 0) {
+ illegal();
+ }
+ mode = useMode;
+ return typeArguments();
+ }
+ return null;
+ }
+
+ /** TypeArguments = "<" TypeArgument {"," TypeArgument} ">"
+ */
+ List<JCExpression> typeArguments() {
+ ListBuffer<JCExpression> args = lb();
+ if (S.token() == LT) {
+ S.nextToken();
+ args.append(((mode & EXPR) == 0) ? typeArgument() : parseType());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ args.append(((mode & EXPR) == 0) ? typeArgument() : parseType());
+ }
+ switch (S.token()) {
+ case GTGTGTEQ:
+ S.token(GTGTEQ);
+ break;
+ case GTGTEQ:
+ S.token(GTEQ);
+ break;
+ case GTEQ:
+ S.token(EQ);
+ break;
+ case GTGTGT:
+ S.token(GTGT);
+ break;
+ case GTGT:
+ S.token(GT);
+ break;
+ default:
+ accept(GT);
+ break;
+ }
+ } else {
+ syntaxError(S.pos(), "expected", LT);
+ }
+ return args.toList();
+ }
+
+ /** TypeArgument = Type
+ * | "?"
+ * | "?" EXTENDS Type {"&" Type}
+ * | "?" SUPER Type
+ */
+ JCExpression typeArgument() {
+ if (S.token() != QUES) return parseType();
+ int pos = S.pos();
+ S.nextToken();
+ if (S.token() == EXTENDS) {
+ TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.EXTENDS));
+ S.nextToken();
+ return F.at(pos).Wildcard(t, parseType());
+ } else if (S.token() == SUPER) {
+ TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.SUPER));
+ S.nextToken();
+ return F.at(pos).Wildcard(t, parseType());
+ } else if (S.token() == IDENTIFIER) {
+ //error recovery
+ reportSyntaxError(S.prevEndPos(), "expected3",
+ GT, EXTENDS, SUPER);
+ TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND);
+ JCExpression wc = toP(F.at(pos).Wildcard(t, null));
+ JCIdent id = toP(F.at(S.pos()).Ident(ident()));
+ return F.at(pos).Erroneous(List.<JCTree>of(wc, id));
+ } else {
+ TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND);
+ return toP(F.at(pos).Wildcard(t, null));
+ }
+ }
+
+ JCTypeApply typeArguments(JCExpression t) {
+ int pos = S.pos();
+ List<JCExpression> args = typeArguments();
+ return toP(F.at(pos).TypeApply(t, args));
+ }
+
+ /** BracketsOpt = {"[" "]"}
+ */
+ private JCExpression bracketsOpt(JCExpression t) {
+ if (S.token() == LBRACKET) {
+ int pos = S.pos();
+ S.nextToken();
+ t = bracketsOptCont(t, pos);
+ F.at(pos);
+ }
+ return t;
+ }
+
+ private JCArrayTypeTree bracketsOptCont(JCExpression t, int pos) {
+ accept(RBRACKET);
+ t = bracketsOpt(t);
+ return toP(F.at(pos).TypeArray(t));
+ }
+
+ /** BracketsSuffixExpr = "." CLASS
+ * BracketsSuffixType =
+ */
+ JCExpression bracketsSuffix(JCExpression t) {
+ if ((mode & EXPR) != 0 && S.token() == DOT) {
+ mode = EXPR;
+ int pos = S.pos();
+ S.nextToken();
+ accept(CLASS);
+ if (S.pos() == errorEndPos) {
+ // error recovery
+ Name name = null;
+ if (S.token() == IDENTIFIER) {
+ name = S.name();
+ S.nextToken();
+ } else {
+ name = names.error;
+ }
+ t = F.at(pos).Erroneous(List.<JCTree>of(toP(F.at(pos).Select(t, name))));
+ } else {
+ t = toP(F.at(pos).Select(t, names._class));
+ }
+ } else if ((mode & TYPE) != 0) {
+ mode = TYPE;
+ } else {
+ syntaxError(S.pos(), "dot.class.expected");
+ }
+ return t;
+ }
+
+ /** Creator = Qualident [TypeArguments] ( ArrayCreatorRest | ClassCreatorRest )
+ */
+ JCExpression creator(int newpos, List<JCExpression> typeArgs) {
+ switch (S.token()) {
+ case BYTE: case SHORT: case CHAR: case INT: case LONG: case FLOAT:
+ case DOUBLE: case BOOLEAN:
+ if (typeArgs == null)
+ return arrayCreatorRest(newpos, basicType());
+ break;
+ default:
+ }
+ JCExpression t = qualident();
+ int oldmode = mode;
+ mode = TYPE;
+ if (S.token() == LT) {
+ checkGenerics();
+ t = typeArguments(t);
+ }
+ while (S.token() == DOT) {
+ int pos = S.pos();
+ S.nextToken();
+ t = toP(F.at(pos).Select(t, ident()));
+ if (S.token() == LT) {
+ checkGenerics();
+ t = typeArguments(t);
+ }
+ }
+ mode = oldmode;
+ if (S.token() == LBRACKET) {
+ JCExpression e = arrayCreatorRest(newpos, t);
+ if (typeArgs != null) {
+ int pos = newpos;
+ if (!typeArgs.isEmpty() && typeArgs.head.pos != Position.NOPOS) {
+ // note: this should always happen but we should
+ // not rely on this as the parser is continuously
+ // modified to improve error recovery.
+ pos = typeArgs.head.pos;
+ }
+ setErrorEndPos(S.prevEndPos());
+ reportSyntaxError(pos, "cannot.create.array.with.type.arguments");
+ return toP(F.at(newpos).Erroneous(typeArgs.prepend(e)));
+ }
+ return e;
+ } else if (S.token() == LPAREN) {
+ return classCreatorRest(newpos, null, typeArgs, t);
+ } else {
+ reportSyntaxError(S.pos(), "expected2",
+ LPAREN, LBRACKET);
+ t = toP(F.at(newpos).NewClass(null, typeArgs, t, List.<JCExpression>nil(), null));
+ return toP(F.at(newpos).Erroneous(List.<JCTree>of(t)));
+ }
+ }
+
+ /** InnerCreator = Ident [TypeArguments] ClassCreatorRest
+ */
+ JCExpression innerCreator(int newpos, List<JCExpression> typeArgs, JCExpression encl) {
+ JCExpression t = toP(F.at(S.pos()).Ident(ident()));
+ if (S.token() == LT) {
+ checkGenerics();
+ t = typeArguments(t);
+ }
+ return classCreatorRest(newpos, encl, typeArgs, t);
+ }
+
+ /** ArrayCreatorRest = "[" ( "]" BracketsOpt ArrayInitializer
+ * | Expression "]" {"[" Expression "]"} BracketsOpt )
+ */
+ JCExpression arrayCreatorRest(int newpos, JCExpression elemtype) {
+ accept(LBRACKET);
+ if (S.token() == RBRACKET) {
+ accept(RBRACKET);
+ elemtype = bracketsOpt(elemtype);
+ if (S.token() == LBRACE) {
+ return arrayInitializer(newpos, elemtype);
+ } else {
+ return syntaxError(S.pos(), "array.dimension.missing");
+ }
+ } else {
+ ListBuffer<JCExpression> dims = new ListBuffer<JCExpression>();
+ dims.append(parseExpression());
+ accept(RBRACKET);
+ while (S.token() == LBRACKET) {
+ int pos = S.pos();
+ S.nextToken();
+ if (S.token() == RBRACKET) {
+ elemtype = bracketsOptCont(elemtype, pos);
+ } else {
+ dims.append(parseExpression());
+ accept(RBRACKET);
+ }
+ }
+ return toP(F.at(newpos).NewArray(elemtype, dims.toList(), null));
+ }
+ }
+
+ /** ClassCreatorRest = Arguments [ClassBody]
+ */
+ JCExpression classCreatorRest(int newpos,
+ JCExpression encl,
+ List<JCExpression> typeArgs,
+ JCExpression t)
+ {
+ List<JCExpression> args = arguments();
+ JCClassDecl body = null;
+ if (S.token() == LBRACE) {
+ int pos = S.pos();
+ List<JCTree> defs = classOrInterfaceBody(names.empty, false);
+ JCModifiers mods = F.at(Position.NOPOS).Modifiers(0);
+ body = toP(F.at(pos).AnonymousClassDef(mods, defs));
+ }
+ return toP(F.at(newpos).NewClass(encl, typeArgs, t, args, body));
+ }
+
+ /** ArrayInitializer = "{" [VariableInitializer {"," VariableInitializer}] [","] "}"
+ */
+ JCExpression arrayInitializer(int newpos, JCExpression t) {
+ accept(LBRACE);
+ ListBuffer<JCExpression> elems = new ListBuffer<JCExpression>();
+ if (S.token() == COMMA) {
+ S.nextToken();
+ } else if (S.token() != RBRACE) {
+ elems.append(variableInitializer());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ if (S.token() == RBRACE) break;
+ elems.append(variableInitializer());
+ }
+ }
+ accept(RBRACE);
+ return toP(F.at(newpos).NewArray(t, List.<JCExpression>nil(), elems.toList()));
+ }
+
+ /** VariableInitializer = ArrayInitializer | Expression
+ */
+ public JCExpression variableInitializer() {
+ return S.token() == LBRACE ? arrayInitializer(S.pos(), null) : parseExpression();
+ }
+
+ /** ParExpression = "(" Expression ")"
+ */
+ JCExpression parExpression() {
+ accept(LPAREN);
+ JCExpression t = parseExpression();
+ accept(RPAREN);
+ return t;
+ }
+
+ /** Block = "{" BlockStatements "}"
+ */
+ JCBlock block(int pos, long flags) {
+ accept(LBRACE);
+ List<JCStatement> stats = blockStatements();
+ JCBlock t = F.at(pos).Block(flags, stats);
+ while (S.token() == CASE || S.token() == DEFAULT) {
+ syntaxError("orphaned", S.token());
+ switchBlockStatementGroups();
+ }
+ // the Block node has a field "endpos" for first char of last token, which is
+ // usually but not necessarily the last char of the last token.
+ t.endpos = S.pos();
+ accept(RBRACE);
+ return toP(t);
+ }
+
+ public JCBlock block() {
+ return block(S.pos(), 0);
+ }
+
+ /** BlockStatements = { BlockStatement }
+ * BlockStatement = LocalVariableDeclarationStatement
+ * | ClassOrInterfaceOrEnumDeclaration
+ * | [Ident ":"] Statement
+ * LocalVariableDeclarationStatement
+ * = { FINAL | '@' Annotation } Type VariableDeclarators ";"
+ */
+ @SuppressWarnings("fallthrough")
+ List<JCStatement> blockStatements() {
+//todo: skip to anchor on error(?)
+ int lastErrPos = -1;
+ ListBuffer<JCStatement> stats = new ListBuffer<JCStatement>();
+ while (true) {
+ int pos = S.pos();
+ switch (S.token()) {
+ case RBRACE: case CASE: case DEFAULT: case EOF:
+ return stats.toList();
+ case LBRACE: case IF: case FOR: case WHILE: case DO: case TRY:
+ case SWITCH: case SYNCHRONIZED: case RETURN: case THROW: case BREAK:
+ case CONTINUE: case SEMI: case ELSE: case FINALLY: case CATCH:
+ stats.append(parseStatement());
+ break;
+ case MONKEYS_AT:
+ case FINAL: {
+ String dc = S.docComment();
+ JCModifiers mods = modifiersOpt();
+ if (S.token() == INTERFACE ||
+ S.token() == CLASS ||
+ allowEnums && S.token() == ENUM) {
+ stats.append(classOrInterfaceOrEnumDeclaration(mods, dc));
+ } else {
+ JCExpression t = parseType();
+ stats.appendList(variableDeclarators(mods, t,
+ new ListBuffer<JCStatement>()));
+ // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
+ storeEnd(stats.elems.last(), S.endPos());
+ accept(SEMI);
+ }
+ break;
+ }
+ case ABSTRACT: case STRICTFP: {
+ String dc = S.docComment();
+ JCModifiers mods = modifiersOpt();
+ stats.append(classOrInterfaceOrEnumDeclaration(mods, dc));
+ break;
+ }
+ case INTERFACE:
+ case CLASS:
+ stats.append(classOrInterfaceOrEnumDeclaration(modifiersOpt(),
+ S.docComment()));
+ break;
+ case ENUM:
+ case ASSERT:
+ if (allowEnums && S.token() == ENUM) {
+ log.error(S.pos(), "local.enum");
+ stats.
+ append(classOrInterfaceOrEnumDeclaration(modifiersOpt(),
+ S.docComment()));
+ break;
+ } else if (allowAsserts && S.token() == ASSERT) {
+ stats.append(parseStatement());
+ break;
+ }
+ /* fall through to default */
+ default:
+ Name name = S.name();
+ JCExpression t = term(EXPR | TYPE);
+ if (S.token() == COLON && t.getTag() == JCTree.IDENT) {
+ S.nextToken();
+ JCStatement stat = parseStatement();
+ stats.append(F.at(pos).Labelled(name, stat));
+ } else if ((lastmode & TYPE) != 0 &&
+ (S.token() == IDENTIFIER ||
+ S.token() == ASSERT ||
+ S.token() == ENUM)) {
+ pos = S.pos();
+ JCModifiers mods = F.at(Position.NOPOS).Modifiers(0);
+ F.at(pos);
+ stats.appendList(variableDeclarators(mods, t,
+ new ListBuffer<JCStatement>()));
+ // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
+ storeEnd(stats.elems.last(), S.endPos());
+ accept(SEMI);
+ } else {
+ // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon
+ stats.append(to(F.at(pos).Exec(checkExprStat(t))));
+ accept(SEMI);
+ }
+ }
+
+ // error recovery
+ if (S.pos() == lastErrPos)
+ return stats.toList();
+ if (S.pos() <= errorEndPos) {
+ skip(false, true, true, true);
+ lastErrPos = S.pos();
+ }
+
+ // ensure no dangling /** @deprecated */ active
+ S.resetDeprecatedFlag();
+ }
+ }
+
+ /** Statement =
+ * Block
+ * | IF ParExpression Statement [ELSE Statement]
+ * | FOR "(" ForInitOpt ";" [Expression] ";" ForUpdateOpt ")" Statement
+ * | FOR "(" FormalParameter : Expression ")" Statement
+ * | WHILE ParExpression Statement
+ * | DO Statement WHILE ParExpression ";"
+ * | TRY Block ( Catches | [Catches] FinallyPart )
+ * | SWITCH ParExpression "{" SwitchBlockStatementGroups "}"
+ * | SYNCHRONIZED ParExpression Block
+ * | RETURN [Expression] ";"
+ * | THROW Expression ";"
+ * | BREAK [Ident] ";"
+ * | CONTINUE [Ident] ";"
+ * | ASSERT Expression [ ":" Expression ] ";"
+ * | ";"
+ * | ExpressionStatement
+ * | Ident ":" Statement
+ */
+ @SuppressWarnings("fallthrough")
+ public JCStatement parseStatement() {
+ int pos = S.pos();
+ switch (S.token()) {
+ case LBRACE:
+ return block();
+ case IF: {
+ S.nextToken();
+ JCExpression cond = parExpression();
+ JCStatement thenpart = parseStatement();
+ JCStatement elsepart = null;
+ if (S.token() == ELSE) {
+ S.nextToken();
+ elsepart = parseStatement();
+ }
+ return F.at(pos).If(cond, thenpart, elsepart);
+ }
+ case FOR: {
+ S.nextToken();
+ accept(LPAREN);
+ List<JCStatement> inits = S.token() == SEMI ? List.<JCStatement>nil() : forInit();
+ if (inits.length() == 1 &&
+ inits.head.getTag() == JCTree.VARDEF &&
+ ((JCVariableDecl) inits.head).init == null &&
+ S.token() == COLON) {
+ checkForeach();
+ JCVariableDecl var = (JCVariableDecl)inits.head;
+ accept(COLON);
+ JCExpression expr = parseExpression();
+ accept(RPAREN);
+ JCStatement body = parseStatement();
+ return F.at(pos).ForeachLoop(var, expr, body);
+ } else {
+ accept(SEMI);
+ JCExpression cond = S.token() == SEMI ? null : parseExpression();
+ accept(SEMI);
+ List<JCExpressionStatement> steps = S.token() == RPAREN ? List.<JCExpressionStatement>nil() : forUpdate();
+ accept(RPAREN);
+ JCStatement body = parseStatement();
+ return F.at(pos).ForLoop(inits, cond, steps, body);
+ }
+ }
+ case WHILE: {
+ S.nextToken();
+ JCExpression cond = parExpression();
+ JCStatement body = parseStatement();
+ return F.at(pos).WhileLoop(cond, body);
+ }
+ case DO: {
+ S.nextToken();
+ JCStatement body = parseStatement();
+ accept(WHILE);
+ JCExpression cond = parExpression();
+ JCDoWhileLoop t = to(F.at(pos).DoLoop(body, cond));
+ accept(SEMI);
+ return t;
+ }
+ case TRY: {
+ S.nextToken();
+ JCBlock body = block();
+ ListBuffer<JCCatch> catchers = new ListBuffer<JCCatch>();
+ JCBlock finalizer = null;
+ if (S.token() == CATCH || S.token() == FINALLY) {
+ while (S.token() == CATCH) catchers.append(catchClause());
+ if (S.token() == FINALLY) {
+ S.nextToken();
+ finalizer = block();
+ }
+ } else {
+ log.error(pos, "try.without.catch.or.finally");
+ }
+ return F.at(pos).Try(body, catchers.toList(), finalizer);
+ }
+ case SWITCH: {
+ S.nextToken();
+ JCExpression selector = parExpression();
+ accept(LBRACE);
+ List<JCCase> cases = switchBlockStatementGroups();
+ JCSwitch t = to(F.at(pos).Switch(selector, cases));
+ accept(RBRACE);
+ return t;
+ }
+ case SYNCHRONIZED: {
+ S.nextToken();
+ JCExpression lock = parExpression();
+ JCBlock body = block();
+ return F.at(pos).Synchronized(lock, body);
+ }
+ case RETURN: {
+ S.nextToken();
+ JCExpression result = S.token() == SEMI ? null : parseExpression();
+ JCReturn t = to(F.at(pos).Return(result));
+ accept(SEMI);
+ return t;
+ }
+ case THROW: {
+ S.nextToken();
+ JCExpression exc = parseExpression();
+ JCThrow t = to(F.at(pos).Throw(exc));
+ accept(SEMI);
+ return t;
+ }
+ case BREAK: {
+ S.nextToken();
+ Name label = (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM) ? ident() : null;
+ JCBreak t = to(F.at(pos).Break(label));
+ accept(SEMI);
+ return t;
+ }
+ case CONTINUE: {
+ S.nextToken();
+ Name label = (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM) ? ident() : null;
+ JCContinue t = to(F.at(pos).Continue(label));
+ accept(SEMI);
+ return t;
+ }
+ case SEMI:
+ S.nextToken();
+ return toP(F.at(pos).Skip());
+ case ELSE:
+ return toP(F.Exec(syntaxError("else.without.if")));
+ case FINALLY:
+ return toP(F.Exec(syntaxError("finally.without.try")));
+ case CATCH:
+ return toP(F.Exec(syntaxError("catch.without.try")));
+ case ASSERT: {
+ if (allowAsserts && S.token() == ASSERT) {
+ S.nextToken();
+ JCExpression assertion = parseExpression();
+ JCExpression message = null;
+ if (S.token() == COLON) {
+ S.nextToken();
+ message = parseExpression();
+ }
+ JCAssert t = to(F.at(pos).Assert(assertion, message));
+ accept(SEMI);
+ return t;
+ }
+ /* else fall through to default case */
+ }
+ case ENUM:
+ default:
+ Name name = S.name();
+ JCExpression expr = parseExpression();
+ if (S.token() == COLON && expr.getTag() == JCTree.IDENT) {
+ S.nextToken();
+ JCStatement stat = parseStatement();
+ return F.at(pos).Labelled(name, stat);
+ } else {
+ // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon
+ JCExpressionStatement stat = to(F.at(pos).Exec(checkExprStat(expr)));
+ accept(SEMI);
+ return stat;
+ }
+ }
+ }
+
+ /** CatchClause = CATCH "(" FormalParameter ")" Block
+ */
+ JCCatch catchClause() {
+ int pos = S.pos();
+ accept(CATCH);
+ accept(LPAREN);
+ JCVariableDecl formal =
+ variableDeclaratorId(optFinal(Flags.PARAMETER),
+ qualident());
+ accept(RPAREN);
+ JCBlock body = block();
+ return F.at(pos).Catch(formal, body);
+ }
+
+ /** SwitchBlockStatementGroups = { SwitchBlockStatementGroup }
+ * SwitchBlockStatementGroup = SwitchLabel BlockStatements
+ * SwitchLabel = CASE ConstantExpression ":" | DEFAULT ":"
+ */
+ List<JCCase> switchBlockStatementGroups() {
+ ListBuffer<JCCase> cases = new ListBuffer<JCCase>();
+ while (true) {
+ int pos = S.pos();
+ switch (S.token()) {
+ case CASE: {
+ S.nextToken();
+ JCExpression pat = parseExpression();
+ accept(COLON);
+ List<JCStatement> stats = blockStatements();
+ JCCase c = F.at(pos).Case(pat, stats);
+ if (stats.isEmpty())
+ storeEnd(c, S.prevEndPos());
+ cases.append(c);
+ break;
+ }
+ case DEFAULT: {
+ S.nextToken();
+ accept(COLON);
+ List<JCStatement> stats = blockStatements();
+ JCCase c = F.at(pos).Case(null, stats);
+ if (stats.isEmpty())
+ storeEnd(c, S.prevEndPos());
+ cases.append(c);
+ break;
+ }
+ case RBRACE: case EOF:
+ return cases.toList();
+ default:
+ S.nextToken(); // to ensure progress
+ syntaxError(pos, "expected3",
+ CASE, DEFAULT, RBRACE);
+ }
+ }
+ }
+
+ /** MoreStatementExpressions = { COMMA StatementExpression }
+ */
+ <T extends ListBuffer<? super JCExpressionStatement>> T moreStatementExpressions(int pos,
+ JCExpression first,
+ T stats) {
+ // This Exec is a "StatementExpression"; it subsumes no terminating token
+ stats.append(toP(F.at(pos).Exec(checkExprStat(first))));
+ while (S.token() == COMMA) {
+ S.nextToken();
+ pos = S.pos();
+ JCExpression t = parseExpression();
+ // This Exec is a "StatementExpression"; it subsumes no terminating token
+ stats.append(toP(F.at(pos).Exec(checkExprStat(t))));
+ }
+ return stats;
+ }
+
+ /** ForInit = StatementExpression MoreStatementExpressions
+ * | { FINAL | '@' Annotation } Type VariableDeclarators
+ */
+ List<JCStatement> forInit() {
+ ListBuffer<JCStatement> stats = lb();
+ int pos = S.pos();
+ if (S.token() == FINAL || S.token() == MONKEYS_AT) {
+ return variableDeclarators(optFinal(0), parseType(), stats).toList();
+ } else {
+ JCExpression t = term(EXPR | TYPE);
+ if ((lastmode & TYPE) != 0 &&
+ (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM))
+ return variableDeclarators(modifiersOpt(), t, stats).toList();
+ else
+ return moreStatementExpressions(pos, t, stats).toList();
+ }
+ }
+
+ /** ForUpdate = StatementExpression MoreStatementExpressions
+ */
+ List<JCExpressionStatement> forUpdate() {
+ return moreStatementExpressions(S.pos(),
+ parseExpression(),
+ new ListBuffer<JCExpressionStatement>()).toList();
+ }
+
+ /** AnnotationsOpt = { '@' Annotation }
+ */
+ List<JCAnnotation> annotationsOpt() {
+ if (S.token() != MONKEYS_AT) return List.nil(); // optimization
+ ListBuffer<JCAnnotation> buf = new ListBuffer<JCAnnotation>();
+ while (S.token() == MONKEYS_AT) {
+ int pos = S.pos();
+ S.nextToken();
+ buf.append(annotation(pos));
+ }
+ return buf.toList();
+ }
+
+ /** ModifiersOpt = { Modifier }
+ * Modifier = PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL
+ * | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | "@"
+ * | "@" Annotation
+ */
+ JCModifiers modifiersOpt() {
+ return modifiersOpt(null);
+ }
+ JCModifiers modifiersOpt(JCModifiers partial) {
+ long flags = (partial == null) ? 0 : partial.flags;
+ if (S.deprecatedFlag()) {
+ flags |= Flags.DEPRECATED;
+ S.resetDeprecatedFlag();
+ }
+ ListBuffer<JCAnnotation> annotations = new ListBuffer<JCAnnotation>();
+ if (partial != null) annotations.appendList(partial.annotations);
+ int pos = S.pos();
+ int lastPos = Position.NOPOS;
+ loop:
+ while (true) {
+ long flag;
+ switch (S.token()) {
+ case PRIVATE : flag = Flags.PRIVATE; break;
+ case PROTECTED : flag = Flags.PROTECTED; break;
+ case PUBLIC : flag = Flags.PUBLIC; break;
+ case STATIC : flag = Flags.STATIC; break;
+ case TRANSIENT : flag = Flags.TRANSIENT; break;
+ case FINAL : flag = Flags.FINAL; break;
+ case ABSTRACT : flag = Flags.ABSTRACT; break;
+ case NATIVE : flag = Flags.NATIVE; break;
+ case VOLATILE : flag = Flags.VOLATILE; break;
+ case SYNCHRONIZED: flag = Flags.SYNCHRONIZED; break;
+ case STRICTFP : flag = Flags.STRICTFP; break;
+ case MONKEYS_AT : flag = Flags.ANNOTATION; break;
+ default: break loop;
+ }
+ if ((flags & flag) != 0) log.error(S.pos(), "repeated.modifier");
+ lastPos = S.pos();
+ S.nextToken();
+ if (flag == Flags.ANNOTATION) {
+ checkAnnotations();
+ if (S.token() != INTERFACE) {
+ JCAnnotation ann = annotation(lastPos);
+ // if first modifier is an annotation, set pos to annotation's.
+ if (flags == 0 && annotations.isEmpty())
+ pos = ann.pos;
+ annotations.append(ann);
+ lastPos = ann.pos;
+ flag = 0;
+ }
+ }
+ flags |= flag;
+ }
+ switch (S.token()) {
+ case ENUM: flags |= Flags.ENUM; break;
+ case INTERFACE: flags |= Flags.INTERFACE; break;
+ default: break;
+ }
+
+ /* A modifiers tree with no modifier tokens or annotations
+ * has no text position. */
+ if (flags == 0 && annotations.isEmpty())
+ pos = Position.NOPOS;
+
+ JCModifiers mods = F.at(pos).Modifiers(flags, annotations.toList());
+ if (pos != Position.NOPOS)
+ storeEnd(mods, S.prevEndPos());
+ return mods;
+ }
+
+ /** Annotation = "@" Qualident [ "(" AnnotationFieldValues ")" ]
+ * @param pos position of "@" token
+ */
+ JCAnnotation annotation(int pos) {
+ // accept(AT); // AT consumed by caller
+ checkAnnotations();
+ JCTree ident = qualident();
+ List<JCExpression> fieldValues = annotationFieldValuesOpt();
+ JCAnnotation ann = F.at(pos).Annotation(ident, fieldValues);
+ storeEnd(ann, S.prevEndPos());
+ return ann;
+ }
+
+ List<JCExpression> annotationFieldValuesOpt() {
+ return (S.token() == LPAREN) ? annotationFieldValues() : List.<JCExpression>nil();
+ }
+
+ /** AnnotationFieldValues = "(" [ AnnotationFieldValue { "," AnnotationFieldValue } ] ")" */
+ List<JCExpression> annotationFieldValues() {
+ accept(LPAREN);
+ ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>();
+ if (S.token() != RPAREN) {
+ buf.append(annotationFieldValue());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ buf.append(annotationFieldValue());
+ }
+ }
+ accept(RPAREN);
+ return buf.toList();
+ }
+
+ /** AnnotationFieldValue = AnnotationValue
+ * | Identifier "=" AnnotationValue
+ */
+ JCExpression annotationFieldValue() {
+ if (S.token() == IDENTIFIER) {
+ mode = EXPR;
+ JCExpression t1 = term1();
+ if (t1.getTag() == JCTree.IDENT && S.token() == EQ) {
+ int pos = S.pos();
+ accept(EQ);
+ return toP(F.at(pos).Assign(t1, annotationValue()));
+ } else {
+ return t1;
+ }
+ }
+ return annotationValue();
+ }
+
+ /* AnnotationValue = ConditionalExpression
+ * | Annotation
+ * | "{" [ AnnotationValue { "," AnnotationValue } ] "}"
+ */
+ JCExpression annotationValue() {
+ int pos;
+ switch (S.token()) {
+ case MONKEYS_AT:
+ pos = S.pos();
+ S.nextToken();
+ return annotation(pos);
+ case LBRACE:
+ pos = S.pos();
+ accept(LBRACE);
+ ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>();
+ if (S.token() != RBRACE) {
+ buf.append(annotationValue());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ if (S.token() == RPAREN) break;
+ buf.append(annotationValue());
+ }
+ }
+ accept(RBRACE);
+ return toP(F.at(pos).NewArray(null, List.<JCExpression>nil(), buf.toList()));
+ default:
+ mode = EXPR;
+ return term1();
+ }
+ }
+
+ /** VariableDeclarators = VariableDeclarator { "," VariableDeclarator }
+ */
+ public <T extends ListBuffer<? super JCVariableDecl>> T variableDeclarators(JCModifiers mods,
+ JCExpression type,
+ T vdefs)
+ {
+ return variableDeclaratorsRest(S.pos(), mods, type, ident(), false, null, vdefs);
+ }
+
+ /** VariableDeclaratorsRest = VariableDeclaratorRest { "," VariableDeclarator }
+ * ConstantDeclaratorsRest = ConstantDeclaratorRest { "," ConstantDeclarator }
+ *
+ * @param reqInit Is an initializer always required?
+ * @param dc The documentation comment for the variable declarations, or null.
+ */
+ <T extends ListBuffer<? super JCVariableDecl>> T variableDeclaratorsRest(int pos,
+ JCModifiers mods,
+ JCExpression type,
+ Name name,
+ boolean reqInit,
+ String dc,
+ T vdefs)
+ {
+ vdefs.append(variableDeclaratorRest(pos, mods, type, name, reqInit, dc));
+ while (S.token() == COMMA) {
+ // All but last of multiple declarators subsume a comma
+ storeEnd((JCTree)vdefs.elems.last(), S.endPos());
+ S.nextToken();
+ vdefs.append(variableDeclarator(mods, type, reqInit, dc));
+ }
+ return vdefs;
+ }
+
+ /** VariableDeclarator = Ident VariableDeclaratorRest
+ * ConstantDeclarator = Ident ConstantDeclaratorRest
+ */
+ JCVariableDecl variableDeclarator(JCModifiers mods, JCExpression type, boolean reqInit, String dc) {
+ return variableDeclaratorRest(S.pos(), mods, type, ident(), reqInit, dc);
+ }
+
+ /** VariableDeclaratorRest = BracketsOpt ["=" VariableInitializer]
+ * ConstantDeclaratorRest = BracketsOpt "=" VariableInitializer
+ *
+ * @param reqInit Is an initializer always required?
+ * @param dc The documentation comment for the variable declarations, or null.
+ */
+ JCVariableDecl variableDeclaratorRest(int pos, JCModifiers mods, JCExpression type, Name name,
+ boolean reqInit, String dc) {
+ type = bracketsOpt(type);
+ JCExpression init = null;
+ if (S.token() == EQ) {
+ S.nextToken();
+ init = variableInitializer();
+ }
+ else if (reqInit) syntaxError(S.pos(), "expected", EQ);
+ JCVariableDecl result =
+ toP(F.at(pos).VarDef(mods, name, type, init));
+ attach(result, dc);
+ return result;
+ }
+
+ /** VariableDeclaratorId = Ident BracketsOpt
+ */
+ JCVariableDecl variableDeclaratorId(JCModifiers mods, JCExpression type) {
+ int pos = S.pos();
+ Name name = ident();
+ if ((mods.flags & Flags.VARARGS) == 0)
+ type = bracketsOpt(type);
+ return toP(F.at(pos).VarDef(mods, name, type, null));
+ }
+
+ /** CompilationUnit = [ { "@" Annotation } PACKAGE Qualident ";"] {ImportDeclaration} {TypeDeclaration}
+ */
+ public JCTree.JCCompilationUnit parseCompilationUnit() {
+ int pos = S.pos();
+ JCExpression pid = null;
+ String dc = S.docComment();
+ JCModifiers mods = null;
+ List<JCAnnotation> packageAnnotations = List.nil();
+ if (S.token() == MONKEYS_AT)
+ mods = modifiersOpt();
+
+ if (S.token() == PACKAGE) {
+ if (mods != null) {
+ checkNoMods(mods.flags);
+ packageAnnotations = mods.annotations;
+ mods = null;
+ }
+ S.nextToken();
+ pid = qualident();
+ accept(SEMI);
+ }
+ ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
+ boolean checkForImports = true;
+ while (S.token() != EOF) {
+ if (S.pos() <= errorEndPos) {
+ // error recovery
+ skip(checkForImports, false, false, false);
+ if (S.token() == EOF)
+ break;
+ }
+ if (checkForImports && mods == null && S.token() == IMPORT) {
+ defs.append(importDeclaration());
+ } else {
+ JCTree def = typeDeclaration(mods);
+ if (def instanceof JCExpressionStatement)
+ def = ((JCExpressionStatement)def).expr;
+ defs.append(def);
+ if (def instanceof JCClassDecl)
+ checkForImports = false;
+ mods = null;
+ }
+ }
+ JCTree.JCCompilationUnit toplevel = F.at(pos).TopLevel(packageAnnotations, pid, defs.toList());
+ attach(toplevel, dc);
+ if (defs.elems.isEmpty())
+ storeEnd(toplevel, S.prevEndPos());
+ if (keepDocComments)
+ toplevel.docComments = docComments;
+ if (keepLineMap)
+ toplevel.lineMap = S.getLineMap();
+ return toplevel;
+ }
+
+ /** ImportDeclaration = IMPORT [ STATIC ] Ident { "." Ident } [ "." "*" ] ";"
+ */
+ JCTree importDeclaration() {
+ int pos = S.pos();
+ S.nextToken();
+ boolean importStatic = false;
+ if (S.token() == STATIC) {
+ checkStaticImports();
+ importStatic = true;
+ S.nextToken();
+ }
+ JCExpression pid = toP(F.at(S.pos()).Ident(ident()));
+ do {
+ int pos1 = S.pos();
+ accept(DOT);
+ if (S.token() == STAR) {
+ pid = to(F.at(pos1).Select(pid, names.asterisk));
+ S.nextToken();
+ break;
+ } else {
+ pid = toP(F.at(pos1).Select(pid, ident()));
+ }
+ } while (S.token() == DOT);
+ accept(SEMI);
+ return toP(F.at(pos).Import(pid, importStatic));
+ }
+
+ /** TypeDeclaration = ClassOrInterfaceOrEnumDeclaration
+ * | ";"
+ */
+ JCTree typeDeclaration(JCModifiers mods) {
+ int pos = S.pos();
+ if (mods == null && S.token() == SEMI) {
+ S.nextToken();
+ return toP(F.at(pos).Skip());
+ } else {
+ String dc = S.docComment();
+ return classOrInterfaceOrEnumDeclaration(modifiersOpt(mods), dc);
+ }
+ }
+
+ /** ClassOrInterfaceOrEnumDeclaration = ModifiersOpt
+ * (ClassDeclaration | InterfaceDeclaration | EnumDeclaration)
+ * @param mods Any modifiers starting the class or interface declaration
+ * @param dc The documentation comment for the class, or null.
+ */
+ JCStatement classOrInterfaceOrEnumDeclaration(JCModifiers mods, String dc) {
+ if (S.token() == CLASS) {
+ return classDeclaration(mods, dc);
+ } else if (S.token() == INTERFACE) {
+ return interfaceDeclaration(mods, dc);
+ } else if (allowEnums) {
+ if (S.token() == ENUM) {
+ return enumDeclaration(mods, dc);
+ } else {
+ int pos = S.pos();
+ List<JCTree> errs;
+ if (S.token() == IDENTIFIER) {
+ errs = List.<JCTree>of(mods, toP(F.at(pos).Ident(ident())));
+ setErrorEndPos(S.pos());
+ } else {
+ errs = List.<JCTree>of(mods);
+ }
+ return toP(F.Exec(syntaxError(pos, errs, "expected3",
+ CLASS, INTERFACE, ENUM)));
+ }
+ } else {
+ if (S.token() == ENUM) {
+ log.error(S.pos(), "enums.not.supported.in.source", source.name);
+ allowEnums = true;
+ return enumDeclaration(mods, dc);
+ }
+ int pos = S.pos();
+ List<JCTree> errs;
+ if (S.token() == IDENTIFIER) {
+ errs = List.<JCTree>of(mods, toP(F.at(pos).Ident(ident())));
+ setErrorEndPos(S.pos());
+ } else {
+ errs = List.<JCTree>of(mods);
+ }
+ return toP(F.Exec(syntaxError(pos, errs, "expected2",
+ CLASS, INTERFACE)));
+ }
+ }
+
+ /** ClassDeclaration = CLASS Ident TypeParametersOpt [EXTENDS Type]
+ * [IMPLEMENTS TypeList] ClassBody
+ * @param mods The modifiers starting the class declaration
+ * @param dc The documentation comment for the class, or null.
+ */
+ JCClassDecl classDeclaration(JCModifiers mods, String dc) {
+ int pos = S.pos();
+ accept(CLASS);
+ Name name = ident();
+
+ List<JCTypeParameter> typarams = typeParametersOpt();
+
+ JCTree extending = null;
+ if (S.token() == EXTENDS) {
+ S.nextToken();
+ extending = parseType();
+ }
+ List<JCExpression> implementing = List.nil();
+ if (S.token() == IMPLEMENTS) {
+ S.nextToken();
+ implementing = typeList();
+ }
+ List<JCTree> defs = classOrInterfaceBody(name, false);
+ JCClassDecl result = toP(F.at(pos).ClassDef(
+ mods, name, typarams, extending, implementing, defs));
+ attach(result, dc);
+ return result;
+ }
+
+ /** InterfaceDeclaration = INTERFACE Ident TypeParametersOpt
+ * [EXTENDS TypeList] InterfaceBody
+ * @param mods The modifiers starting the interface declaration
+ * @param dc The documentation comment for the interface, or null.
+ */
+ JCClassDecl interfaceDeclaration(JCModifiers mods, String dc) {
+ int pos = S.pos();
+ accept(INTERFACE);
+ Name name = ident();
+
+ List<JCTypeParameter> typarams = typeParametersOpt();
+
+ List<JCExpression> extending = List.nil();
+ if (S.token() == EXTENDS) {
+ S.nextToken();
+ extending = typeList();
+ }
+ List<JCTree> defs = classOrInterfaceBody(name, true);
+ JCClassDecl result = toP(F.at(pos).ClassDef(
+ mods, name, typarams, null, extending, defs));
+ attach(result, dc);
+ return result;
+ }
+
+ /** EnumDeclaration = ENUM Ident [IMPLEMENTS TypeList] EnumBody
+ * @param mods The modifiers starting the enum declaration
+ * @param dc The documentation comment for the enum, or null.
+ */
+ JCClassDecl enumDeclaration(JCModifiers mods, String dc) {
+ int pos = S.pos();
+ accept(ENUM);
+ Name name = ident();
+
+ List<JCExpression> implementing = List.nil();
+ if (S.token() == IMPLEMENTS) {
+ S.nextToken();
+ implementing = typeList();
+ }
+
+ List<JCTree> defs = enumBody(name);
+ JCModifiers newMods =
+ F.at(mods.pos).Modifiers(mods.flags|Flags.ENUM, mods.annotations);
+ JCClassDecl result = toP(F.at(pos).
+ ClassDef(newMods, name, List.<JCTypeParameter>nil(),
+ null, implementing, defs));
+ attach(result, dc);
+ return result;
+ }
+
+ /** EnumBody = "{" { EnumeratorDeclarationList } [","]
+ * [ ";" {ClassBodyDeclaration} ] "}"
+ */
+ List<JCTree> enumBody(Name enumName) {
+ accept(LBRACE);
+ ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
+ if (S.token() == COMMA) {
+ S.nextToken();
+ } else if (S.token() != RBRACE && S.token() != SEMI) {
+ defs.append(enumeratorDeclaration(enumName));
+ while (S.token() == COMMA) {
+ S.nextToken();
+ if (S.token() == RBRACE || S.token() == SEMI) break;
+ defs.append(enumeratorDeclaration(enumName));
+ }
+ if (S.token() != SEMI && S.token() != RBRACE) {
+ defs.append(syntaxError(S.pos(), "expected3",
+ COMMA, RBRACE, SEMI));
+ S.nextToken();
+ }
+ }
+ if (S.token() == SEMI) {
+ S.nextToken();
+ while (S.token() != RBRACE && S.token() != EOF) {
+ defs.appendList(classOrInterfaceBodyDeclaration(enumName,
+ false));
+ if (S.pos() <= errorEndPos) {
+ // error recovery
+ skip(false, true, true, false);
+ }
+ }
+ }
+ accept(RBRACE);
+ return defs.toList();
+ }
+
+ /** EnumeratorDeclaration = AnnotationsOpt [TypeArguments] IDENTIFIER [ Arguments ] [ "{" ClassBody "}" ]
+ */
+ JCTree enumeratorDeclaration(Name enumName) {
+ String dc = S.docComment();
+ int flags = Flags.PUBLIC|Flags.STATIC|Flags.FINAL|Flags.ENUM;
+ if (S.deprecatedFlag()) {
+ flags |= Flags.DEPRECATED;
+ S.resetDeprecatedFlag();
+ }
+ int pos = S.pos();
+ List<JCAnnotation> annotations = annotationsOpt();
+ JCModifiers mods = F.at(annotations.isEmpty() ? Position.NOPOS : pos).Modifiers(flags, annotations);
+ List<JCExpression> typeArgs = typeArgumentsOpt();
+ int identPos = S.pos();
+ Name name = ident();
+ int createPos = S.pos();
+ List<JCExpression> args = (S.token() == LPAREN)
+ ? arguments() : List.<JCExpression>nil();
+ JCClassDecl body = null;
+ if (S.token() == LBRACE) {
+ JCModifiers mods1 = F.at(Position.NOPOS).Modifiers(Flags.ENUM | Flags.STATIC);
+ List<JCTree> defs = classOrInterfaceBody(names.empty, false);
+ body = toP(F.at(identPos).AnonymousClassDef(mods1, defs));
+ }
+ if (args.isEmpty() && body == null)
+ createPos = Position.NOPOS;
+ JCIdent ident = F.at(Position.NOPOS).Ident(enumName);
+ JCNewClass create = F.at(createPos).NewClass(null, typeArgs, ident, args, body);
+ if (createPos != Position.NOPOS)
+ storeEnd(create, S.prevEndPos());
+ ident = F.at(Position.NOPOS).Ident(enumName);
+ JCTree result = toP(F.at(pos).VarDef(mods, name, ident, create));
+ attach(result, dc);
+ return result;
+ }
+
+ /** TypeList = Type {"," Type}
+ */
+ List<JCExpression> typeList() {
+ ListBuffer<JCExpression> ts = new ListBuffer<JCExpression>();
+ ts.append(parseType());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ ts.append(parseType());
+ }
+ return ts.toList();
+ }
+
+ /** ClassBody = "{" {ClassBodyDeclaration} "}"
+ * InterfaceBody = "{" {InterfaceBodyDeclaration} "}"
+ */
+ List<JCTree> classOrInterfaceBody(Name className, boolean isInterface) {
+ accept(LBRACE);
+ if (S.pos() <= errorEndPos) {
+ // error recovery
+ skip(false, true, false, false);
+ if (S.token() == LBRACE)
+ S.nextToken();
+ }
+ ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
+ while (S.token() != RBRACE && S.token() != EOF) {
+ defs.appendList(classOrInterfaceBodyDeclaration(className, isInterface));
+ if (S.pos() <= errorEndPos) {
+ // error recovery
+ skip(false, true, true, false);
+ }
+ }
+ accept(RBRACE);
+ return defs.toList();
+ }
+
+ /** ClassBodyDeclaration =
+ * ";"
+ * | [STATIC] Block
+ * | ModifiersOpt
+ * ( Type Ident
+ * ( VariableDeclaratorsRest ";" | MethodDeclaratorRest )
+ * | VOID Ident MethodDeclaratorRest
+ * | TypeParameters (Type | VOID) Ident MethodDeclaratorRest
+ * | Ident ConstructorDeclaratorRest
+ * | TypeParameters Ident ConstructorDeclaratorRest
+ * | ClassOrInterfaceOrEnumDeclaration
+ * )
+ * InterfaceBodyDeclaration =
+ * ";"
+ * | ModifiersOpt Type Ident
+ * ( ConstantDeclaratorsRest | InterfaceMethodDeclaratorRest ";" )
+ */
+ List<JCTree> classOrInterfaceBodyDeclaration(Name className, boolean isInterface) {
+ if (S.token() == SEMI) {
+ S.nextToken();
+ return List.<JCTree>of(F.at(Position.NOPOS).Block(0, List.<JCStatement>nil()));
+ } else {
+ String dc = S.docComment();
+ int pos = S.pos();
+ JCModifiers mods = modifiersOpt();
+ if (S.token() == CLASS ||
+ S.token() == INTERFACE ||
+ allowEnums && S.token() == ENUM) {
+ return List.<JCTree>of(classOrInterfaceOrEnumDeclaration(mods, dc));
+ } else if (S.token() == LBRACE && !isInterface &&
+ (mods.flags & Flags.StandardFlags & ~Flags.STATIC) == 0 &&
+ mods.annotations.isEmpty()) {
+ return List.<JCTree>of(block(pos, mods.flags));
+ } else {
+ pos = S.pos();
+ List<JCTypeParameter> typarams = typeParametersOpt();
+ // Hack alert: if there are type arguments but no Modifiers, the start
+ // position will be lost unless we set the Modifiers position. There
+ // should be an AST node for type parameters (BugId 5005090).
+ if (typarams.length() > 0 && mods.pos == Position.NOPOS) {
+ mods.pos = pos;
+ }
+ Token token = S.token();
+ Name name = S.name();
+ pos = S.pos();
+ JCExpression type;
+ boolean isVoid = S.token() == VOID;
+ if (isVoid) {
+ type = to(F.at(pos).TypeIdent(TypeTags.VOID));
+ S.nextToken();
+ } else {
+ type = parseType();
+ }
+ if (S.token() == LPAREN && !isInterface && type.getTag() == JCTree.IDENT) {
+ if (isInterface || name != className)
+ log.error(pos, "invalid.meth.decl.ret.type.req");
+ return List.of(methodDeclaratorRest(
+ pos, mods, null, names.init, typarams,
+ isInterface, true, dc));
+ } else {
+ pos = S.pos();
+ name = ident();
+ if (S.token() == LPAREN) {
+ return List.of(methodDeclaratorRest(
+ pos, mods, type, name, typarams,
+ isInterface, isVoid, dc));
+ } else if (!isVoid && typarams.isEmpty()) {
+ List<JCTree> defs =
+ variableDeclaratorsRest(pos, mods, type, name, isInterface, dc,
+ new ListBuffer<JCTree>()).toList();
+ storeEnd(defs.last(), S.endPos());
+ accept(SEMI);
+ return defs;
+ } else {
+ pos = S.pos();
+ List<JCTree> err = isVoid
+ ? List.<JCTree>of(toP(F.at(pos).MethodDef(mods, name, type, typarams,
+ List.<JCVariableDecl>nil(), List.<JCExpression>nil(), null, null)))
+ : null;
+ return List.<JCTree>of(syntaxError(S.pos(), err, "expected", LPAREN));
+ }
+ }
+ }
+ }
+ }
+
+ /** MethodDeclaratorRest =
+ * FormalParameters BracketsOpt [Throws TypeList] ( MethodBody | [DEFAULT AnnotationValue] ";")
+ * VoidMethodDeclaratorRest =
+ * FormalParameters [Throws TypeList] ( MethodBody | ";")
+ * InterfaceMethodDeclaratorRest =
+ * FormalParameters BracketsOpt [THROWS TypeList] ";"
+ * VoidInterfaceMethodDeclaratorRest =
+ * FormalParameters [THROWS TypeList] ";"
+ * ConstructorDeclaratorRest =
+ * "(" FormalParameterListOpt ")" [THROWS TypeList] MethodBody
+ */
+ JCTree methodDeclaratorRest(int pos,
+ JCModifiers mods,
+ JCExpression type,
+ Name name,
+ List<JCTypeParameter> typarams,
+ boolean isInterface, boolean isVoid,
+ String dc) {
+ List<JCVariableDecl> params = formalParameters();
+ if (!isVoid) type = bracketsOpt(type);
+ List<JCExpression> thrown = List.nil();
+ if (S.token() == THROWS) {
+ S.nextToken();
+ thrown = qualidentList();
+ }
+ JCBlock body = null;
+ JCExpression defaultValue;
+ if (S.token() == LBRACE) {
+ body = block();
+ defaultValue = null;
+ } else {
+ if (S.token() == DEFAULT) {
+ accept(DEFAULT);
+ defaultValue = annotationValue();
+ } else {
+ defaultValue = null;
+ }
+ accept(SEMI);
+ if (S.pos() <= errorEndPos) {
+ // error recovery
+ skip(false, true, false, false);
+ if (S.token() == LBRACE) {
+ body = block();
+ }
+ }
+ }
+ JCMethodDecl result =
+ toP(F.at(pos).MethodDef(mods, name, type, typarams,
+ params, thrown,
+ body, defaultValue));
+ attach(result, dc);
+ return result;
+ }
+
+ /** QualidentList = Qualident {"," Qualident}
+ */
+ List<JCExpression> qualidentList() {
+ ListBuffer<JCExpression> ts = new ListBuffer<JCExpression>();
+ ts.append(qualident());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ ts.append(qualident());
+ }
+ return ts.toList();
+ }
+
+ /** TypeParametersOpt = ["<" TypeParameter {"," TypeParameter} ">"]
+ */
+ List<JCTypeParameter> typeParametersOpt() {
+ if (S.token() == LT) {
+ checkGenerics();
+ ListBuffer<JCTypeParameter> typarams = new ListBuffer<JCTypeParameter>();
+ S.nextToken();
+ typarams.append(typeParameter());
+ while (S.token() == COMMA) {
+ S.nextToken();
+ typarams.append(typeParameter());
+ }
+ accept(GT);
+ return typarams.toList();
+ } else {
+ return List.nil();
+ }
+ }
+
+ /** TypeParameter = TypeVariable [TypeParameterBound]
+ * TypeParameterBound = EXTENDS Type {"&" Type}
+ * TypeVariable = Ident
+ */
+ JCTypeParameter typeParameter() {
+ int pos = S.pos();
+ Name name = ident();
+ ListBuffer<JCExpression> bounds = new ListBuffer<JCExpression>();
+ if (S.token() == EXTENDS) {
+ S.nextToken();
+ bounds.append(parseType());
+ while (S.token() == AMP) {
+ S.nextToken();
+ bounds.append(parseType());
+ }
+ }
+ return toP(F.at(pos).TypeParameter(name, bounds.toList()));
+ }
+
+ /** FormalParameters = "(" [ FormalParameterList ] ")"
+ * FormalParameterList = [ FormalParameterListNovarargs , ] LastFormalParameter
+ * FormalParameterListNovarargs = [ FormalParameterListNovarargs , ] FormalParameter
+ */
+ List<JCVariableDecl> formalParameters() {
+ ListBuffer<JCVariableDecl> params = new ListBuffer<JCVariableDecl>();
+ JCVariableDecl lastParam = null;
+ accept(LPAREN);
+ if (S.token() != RPAREN) {
+ params.append(lastParam = formalParameter());
+ while ((lastParam.mods.flags & Flags.VARARGS) == 0 && S.token() == COMMA) {
+ S.nextToken();
+ params.append(lastParam = formalParameter());
+ }
+ }
+ accept(RPAREN);
+ return params.toList();
+ }
+
+ JCModifiers optFinal(long flags) {
+ JCModifiers mods = modifiersOpt();
+ checkNoMods(mods.flags & ~(Flags.FINAL | Flags.DEPRECATED));
+ mods.flags |= flags;
+ return mods;
+ }
+
+ /** FormalParameter = { FINAL | '@' Annotation } Type VariableDeclaratorId
+ * LastFormalParameter = { FINAL | '@' Annotation } Type '...' Ident | FormalParameter
+ */
+ JCVariableDecl formalParameter() {
+ JCModifiers mods = optFinal(Flags.PARAMETER);
+ JCExpression type = parseType();
+ if (S.token() == ELLIPSIS) {
+ checkVarargs();
+ mods.flags |= Flags.VARARGS;
+ type = to(F.at(S.pos()).TypeArray(type));
+ S.nextToken();
+ }
+ return variableDeclaratorId(mods, type);
+ }
+
+/* ---------- auxiliary methods -------------- */
+
+ /** Check that given tree is a legal expression statement.
+ */
+ protected JCExpression checkExprStat(JCExpression t) {
+ switch(t.getTag()) {
+ case JCTree.PREINC: case JCTree.PREDEC:
+ case JCTree.POSTINC: case JCTree.POSTDEC:
+ case JCTree.ASSIGN:
+ case JCTree.BITOR_ASG: case JCTree.BITXOR_ASG: case JCTree.BITAND_ASG:
+ case JCTree.SL_ASG: case JCTree.SR_ASG: case JCTree.USR_ASG:
+ case JCTree.PLUS_ASG: case JCTree.MINUS_ASG:
+ case JCTree.MUL_ASG: case JCTree.DIV_ASG: case JCTree.MOD_ASG:
+ case JCTree.APPLY: case JCTree.NEWCLASS:
+ case JCTree.ERRONEOUS:
+ return t;
+ default:
+ log.error(t.pos, "not.stmt");
+ return F.at(t.pos).Erroneous(List.<JCTree>of(t));
+ }
+ }
+
+ /** Return precedence of operator represented by token,
+ * -1 if token is not a binary operator. @see TreeInfo.opPrec
+ */
+ static int prec(Token token) {
+ int oc = optag(token);
+ return (oc >= 0) ? TreeInfo.opPrec(oc) : -1;
+ }
+
+ /** Return operation tag of binary operator represented by token,
+ * -1 if token is not a binary operator.
+ */
+ static int optag(Token token) {
+ switch (token) {
+ case BARBAR:
+ return JCTree.OR;
+ case AMPAMP:
+ return JCTree.AND;
+ case BAR:
+ return JCTree.BITOR;
+ case BAREQ:
+ return JCTree.BITOR_ASG;
+ case CARET:
+ return JCTree.BITXOR;
+ case CARETEQ:
+ return JCTree.BITXOR_ASG;
+ case AMP:
+ return JCTree.BITAND;
+ case AMPEQ:
+ return JCTree.BITAND_ASG;
+ case EQEQ:
+ return JCTree.EQ;
+ case BANGEQ:
+ return JCTree.NE;
+ case LT:
+ return JCTree.LT;
+ case GT:
+ return JCTree.GT;
+ case LTEQ:
+ return JCTree.LE;
+ case GTEQ:
+ return JCTree.GE;
+ case LTLT:
+ return JCTree.SL;
+ case LTLTEQ:
+ return JCTree.SL_ASG;
+ case GTGT:
+ return JCTree.SR;
+ case GTGTEQ:
+ return JCTree.SR_ASG;
+ case GTGTGT:
+ return JCTree.USR;
+ case GTGTGTEQ:
+ return JCTree.USR_ASG;
+ case PLUS:
+ return JCTree.PLUS;
+ case PLUSEQ:
+ return JCTree.PLUS_ASG;
+ case SUB:
+ return JCTree.MINUS;
+ case SUBEQ:
+ return JCTree.MINUS_ASG;
+ case STAR:
+ return JCTree.MUL;
+ case STAREQ:
+ return JCTree.MUL_ASG;
+ case SLASH:
+ return JCTree.DIV;
+ case SLASHEQ:
+ return JCTree.DIV_ASG;
+ case PERCENT:
+ return JCTree.MOD;
+ case PERCENTEQ:
+ return JCTree.MOD_ASG;
+ case INSTANCEOF:
+ return JCTree.TYPETEST;
+ default:
+ return -1;
+ }
+ }
+
+ /** Return operation tag of unary operator represented by token,
+ * -1 if token is not a binary operator.
+ */
+ static int unoptag(Token token) {
+ switch (token) {
+ case PLUS:
+ return JCTree.POS;
+ case SUB:
+ return JCTree.NEG;
+ case BANG:
+ return JCTree.NOT;
+ case TILDE:
+ return JCTree.COMPL;
+ case PLUSPLUS:
+ return JCTree.PREINC;
+ case SUBSUB:
+ return JCTree.PREDEC;
+ default:
+ return -1;
+ }
+ }
+
+ /** Return type tag of basic type represented by token,
+ * -1 if token is not a basic type identifier.
+ */
+ static int typetag(Token token) {
+ switch (token) {
+ case BYTE:
+ return TypeTags.BYTE;
+ case CHAR:
+ return TypeTags.CHAR;
+ case SHORT:
+ return TypeTags.SHORT;
+ case INT:
+ return TypeTags.INT;
+ case LONG:
+ return TypeTags.LONG;
+ case FLOAT:
+ return TypeTags.FLOAT;
+ case DOUBLE:
+ return TypeTags.DOUBLE;
+ case BOOLEAN:
+ return TypeTags.BOOLEAN;
+ default:
+ return -1;
+ }
+ }
+
+ void checkGenerics() {
+ if (!allowGenerics) {
+ log.error(S.pos(), "generics.not.supported.in.source", source.name);
+ allowGenerics = true;
+ }
+ }
+ void checkVarargs() {
+ if (!allowVarargs) {
+ log.error(S.pos(), "varargs.not.supported.in.source", source.name);
+ allowVarargs = true;
+ }
+ }
+ void checkForeach() {
+ if (!allowForeach) {
+ log.error(S.pos(), "foreach.not.supported.in.source", source.name);
+ allowForeach = true;
+ }
+ }
+ void checkStaticImports() {
+ if (!allowStaticImport) {
+ log.error(S.pos(), "static.import.not.supported.in.source", source.name);
+ allowStaticImport = true;
+ }
+ }
+ void checkAnnotations() {
+ if (!allowAnnotations) {
+ log.error(S.pos(), "annotations.not.supported.in.source", source.name);
+ allowAnnotations = true;
+ }
+ }
+}
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Keywords.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Keywords.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.Log;
import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
import static com.sun.tools.javac.parser.Token.*;
@@ -51,12 +52,12 @@
}
private final Log log;
- private final Name.Table names;
+ private final Names names;
protected Keywords(Context context) {
context.put(keywordsKey, this);
log = Log.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
for (Token t : Token.values()) {
if (t.name != null)
@@ -69,13 +70,13 @@
for (int i = 0; i <= maxKey; i++) key[i] = IDENTIFIER;
for (Token t : Token.values()) {
if (t.name != null)
- key[tokenName[t.ordinal()].index] = t;
+ key[tokenName[t.ordinal()].getIndex()] = t;
}
}
public Token key(Name name) {
- return (name.index > maxKey) ? IDENTIFIER : key[name.index];
+ return (name.getIndex() > maxKey) ? IDENTIFIER : key[name.getIndex()];
}
/**
@@ -94,6 +95,6 @@
private void enterKeyword(String s, Token token) {
Name n = names.fromString(s);
tokenName[token.ordinal()] = n;
- if (n.index > maxKey) maxKey = n.index;
+ if (n.getIndex() > maxKey) maxKey = n.getIndex();
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Parser.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Parser.java Sat Oct 04 22:48:54 2008 -0700
@@ -23,2834 +23,44 @@
* have any questions.
*/
+
package com.sun.tools.javac.parser;
-import java.util.*;
-
-import com.sun.tools.javac.tree.*;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.util.*;
-import com.sun.tools.javac.util.List;
-import static com.sun.tools.javac.util.ListBuffer.lb;
-
-import com.sun.tools.javac.tree.JCTree.*;
-
-import static com.sun.tools.javac.parser.Token.*;
-
-/** The parser maps a token sequence into an abstract syntax
- * tree. It operates by recursive descent, with code derived
- * systematically from an LL(1) grammar. For efficiency reasons, an
- * operator precedence scheme is used for parsing binary operation
- * expressions.
- *
- * <p><b>This is NOT part of any API supported by Sun Microsystems. If
- * you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.</b>
- */
-public class Parser {
-
- /** A factory for creating parsers. */
- public static class Factory {
- /** The context key for the parser factory. */
- protected static final Context.Key<Parser.Factory> parserFactoryKey =
- new Context.Key<Parser.Factory>();
-
- /** Get the Factory instance for this context. */
- public static Factory instance(Context context) {
- Factory instance = context.get(parserFactoryKey);
- if (instance == null)
- instance = new Factory(context);
- return instance;
- }
-
- final TreeMaker F;
- final Log log;
- final Keywords keywords;
- final Source source;
- final Name.Table names;
- final Options options;
-
- /** Create a new parser factory. */
- protected Factory(Context context) {
- context.put(parserFactoryKey, this);
- this.F = TreeMaker.instance(context);
- this.log = Log.instance(context);
- this.names = Name.Table.instance(context);
- this.keywords = Keywords.instance(context);
- this.source = Source.instance(context);
- this.options = Options.instance(context);
- }
-
- /**
- * Create a new Parser.
- * @param S Lexer for getting tokens while parsing
- * @param keepDocComments true if javadoc comments should be kept
- * @param genEndPos true if end positions should be generated
- */
- public Parser newParser(Lexer S, boolean keepDocComments, boolean genEndPos) {
- if (!genEndPos)
- return new Parser(this, S, keepDocComments);
- else
- return new EndPosParser(this, S, keepDocComments);
- }
- }
-
- /** The number of precedence levels of infix operators.
- */
- private static final int infixPrecedenceLevels = 10;
-
- /** The scanner used for lexical analysis.
- */
- private Lexer S;
-
- /** The factory to be used for abstract syntax tree construction.
- */
- protected TreeMaker F;
-
- /** The log to be used for error diagnostics.
- */
- private Log log;
-
- /** The keyword table. */
- private Keywords keywords;
-
- /** The Source language setting. */
- private Source source;
-
- /** The name table. */
- private Name.Table names;
-
- /** Construct a parser from a given scanner, tree factory and log.
- */
- protected Parser(Factory fac,
- Lexer S,
- boolean keepDocComments) {
- this.S = S;
- S.nextToken(); // prime the pump
- this.F = fac.F;
- this.log = fac.log;
- this.names = fac.names;
- this.keywords = fac.keywords;
- this.source = fac.source;
- Options options = fac.options;
- this.allowGenerics = source.allowGenerics();
- this.allowVarargs = source.allowVarargs();
- this.allowAsserts = source.allowAsserts();
- this.allowEnums = source.allowEnums();
- this.allowForeach = source.allowForeach();
- this.allowStaticImport = source.allowStaticImport();
- this.allowAnnotations = source.allowAnnotations();
- this.keepDocComments = keepDocComments;
- if (keepDocComments) docComments = new HashMap<JCTree,String>();
- this.errorTree = F.Erroneous();
- }
-
- /** Switch: Should generics be recognized?
- */
- boolean allowGenerics;
-
- /** Switch: Should varargs be recognized?
- */
- boolean allowVarargs;
-
- /** Switch: should we recognize assert statements, or just give a warning?
- */
- boolean allowAsserts;
-
- /** Switch: should we recognize enums, or just give a warning?
- */
- boolean allowEnums;
-
- /** Switch: should we recognize foreach?
- */
- boolean allowForeach;
-
- /** Switch: should we recognize foreach?
- */
- boolean allowStaticImport;
+import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.tree.JCTree.JCExpression;
+import com.sun.tools.javac.tree.JCTree.JCStatement;
- /** Switch: should we recognize annotations?
- */
- boolean allowAnnotations;
-
- /** Switch: should we keep docComments?
- */
- boolean keepDocComments;
-
- /** When terms are parsed, the mode determines which is expected:
- * mode = EXPR : an expression
- * mode = TYPE : a type
- * mode = NOPARAMS : no parameters allowed for type
- * mode = TYPEARG : type argument
- */
- static final int EXPR = 1;
- static final int TYPE = 2;
- static final int NOPARAMS = 4;
- static final int TYPEARG = 8;
-
- /** The current mode.
- */
- private int mode = 0;
-
- /** The mode of the term that was parsed last.
- */
- private int lastmode = 0;
-
-/* ---------- error recovery -------------- */
-
- private JCErroneous errorTree;
-
- /** Skip forward until a suitable stop token is found.
- */
- private void skip(boolean stopAtImport, boolean stopAtMemberDecl, boolean stopAtIdentifier, boolean stopAtStatement) {
- while (true) {
- switch (S.token()) {
- case SEMI:
- S.nextToken();
- return;
- case PUBLIC:
- case FINAL:
- case ABSTRACT:
- case MONKEYS_AT:
- case EOF:
- case CLASS:
- case INTERFACE:
- case ENUM:
- return;
- case IMPORT:
- if (stopAtImport)
- return;
- break;
- case LBRACE:
- case RBRACE:
- case PRIVATE:
- case PROTECTED:
- case STATIC:
- case TRANSIENT:
- case NATIVE:
- case VOLATILE:
- case SYNCHRONIZED:
- case STRICTFP:
- case LT:
- case BYTE:
- case SHORT:
- case CHAR:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- case BOOLEAN:
- case VOID:
- if (stopAtMemberDecl)
- return;
- break;
- case IDENTIFIER:
- if (stopAtIdentifier)
- return;
- break;
- case CASE:
- case DEFAULT:
- case IF:
- case FOR:
- case WHILE:
- case DO:
- case TRY:
- case SWITCH:
- case RETURN:
- case THROW:
- case BREAK:
- case CONTINUE:
- case ELSE:
- case FINALLY:
- case CATCH:
- if (stopAtStatement)
- return;
- break;
- }
- S.nextToken();
- }
- }
-
- private JCErroneous syntaxError(int pos, String key, Token... args) {
- return syntaxError(pos, null, key, args);
- }
-
- private JCErroneous syntaxError(int pos, List<JCTree> errs, String key, Token... args) {
- setErrorEndPos(pos);
- reportSyntaxError(pos, key, (Object[])args);
- return toP(F.at(pos).Erroneous(errs));
- }
-
- private int errorPos = Position.NOPOS;
+/**
+ * Reads syntactic units from source code.
+ * Parsers are normally created from a ParserFactory.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public interface Parser {
/**
- * Report a syntax error at given position using the given
- * argument unless one was already reported at the same position.
- */
- private void reportSyntaxError(int pos, String key, Object... args) {
- if (pos > S.errPos() || pos == Position.NOPOS) {
- if (S.token() == EOF)
- log.error(pos, "premature.eof");
- else
- log.error(pos, key, args);
- }
- S.errPos(pos);
- if (S.pos() == errorPos)
- S.nextToken(); // guarantee progress
- errorPos = S.pos();
- }
-
-
- /** Generate a syntax error at current position unless one was already
- * reported at the same position.
- */
- private JCErroneous syntaxError(String key) {
- return syntaxError(S.pos(), key);
- }
-
- /** Generate a syntax error at current position unless one was
- * already reported at the same position.
- */
- private JCErroneous syntaxError(String key, Token arg) {
- return syntaxError(S.pos(), key, arg);
- }
-
- /** If next input token matches given token, skip it, otherwise report
- * an error.
+ * Parse a compilation unit.
+ * @return a compilation unit
*/
- public void accept(Token token) {
- if (S.token() == token) {
- S.nextToken();
- } else {
- setErrorEndPos(S.pos());
- reportSyntaxError(S.prevEndPos(), "expected", token);
- }
- }
-
- /** Report an illegal start of expression/type error at given position.
- */
- JCExpression illegal(int pos) {
- setErrorEndPos(S.pos());
- if ((mode & EXPR) != 0)
- return syntaxError(pos, "illegal.start.of.expr");
- else
- return syntaxError(pos, "illegal.start.of.type");
-
- }
-
- /** Report an illegal start of expression/type error at current position.
- */
- JCExpression illegal() {
- return illegal(S.pos());
- }
-
- /** Diagnose a modifier flag from the set, if any. */
- void checkNoMods(long mods) {
- if (mods != 0) {
- long lowestMod = mods & -mods;
- log.error(S.pos(), "mod.not.allowed.here",
- Flags.asFlagSet(lowestMod));
- }
- }
-
-/* ---------- doc comments --------- */
-
- /** A hashtable to store all documentation comments
- * indexed by the tree nodes they refer to.
- * defined only if option flag keepDocComment is set.
- */
- Map<JCTree, String> docComments;
-
- /** Make an entry into docComments hashtable,
- * provided flag keepDocComments is set and given doc comment is non-null.
- * @param tree The tree to be used as index in the hashtable
- * @param dc The doc comment to associate with the tree, or null.
- */
- void attach(JCTree tree, String dc) {
- if (keepDocComments && dc != null) {
-// System.out.println("doc comment = ");System.out.println(dc);//DEBUG
- docComments.put(tree, dc);
- }
- }
-
-/* -------- source positions ------- */
-
- private int errorEndPos = -1;
-
- private void setErrorEndPos(int errPos) {
- if (errPos > errorEndPos)
- errorEndPos = errPos;
- }
-
- protected int getErrorEndPos() {
- return errorEndPos;
- }
-
- /**
- * Store ending position for a tree.
- * @param tree The tree.
- * @param endpos The ending position to associate with the tree.
- */
- protected void storeEnd(JCTree tree, int endpos) {}
-
- /**
- * Store ending position for a tree. The ending position should
- * be the ending position of the current token.
- * @param t The tree.
- */
- protected <T extends JCTree> T to(T t) { return t; }
-
- /**
- * Store ending position for a tree. The ending position should
- * be greater of the ending position of the previous token and errorEndPos.
- * @param t The tree.
- */
- protected <T extends JCTree> T toP(T t) { return t; }
-
- /** Get the start position for a tree node. The start position is
- * defined to be the position of the first character of the first
- * token of the node's source text.
- * @param tree The tree node
- */
- public int getStartPos(JCTree tree) {
- return TreeInfo.getStartPos(tree);
- }
-
- /**
- * Get the end position for a tree node. The end position is
- * defined to be the position of the last character of the last
- * token of the node's source text. Returns Position.NOPOS if end
- * positions are not generated or the position is otherwise not
- * found.
- * @param tree The tree node
- */
- public int getEndPos(JCTree tree) {
- return Position.NOPOS;
- }
-
-
-
-/* ---------- parsing -------------- */
-
- /**
- * Ident = IDENTIFIER
- */
- Name ident() {
- if (S.token() == IDENTIFIER) {
- Name name = S.name();
- S.nextToken();
- return name;
- } else if (S.token() == ASSERT) {
- if (allowAsserts) {
- log.error(S.pos(), "assert.as.identifier");
- S.nextToken();
- return names.error;
- } else {
- log.warning(S.pos(), "assert.as.identifier");
- Name name = S.name();
- S.nextToken();
- return name;
- }
- } else if (S.token() == ENUM) {
- if (allowEnums) {
- log.error(S.pos(), "enum.as.identifier");
- S.nextToken();
- return names.error;
- } else {
- log.warning(S.pos(), "enum.as.identifier");
- Name name = S.name();
- S.nextToken();
- return name;
- }
- } else {
- accept(IDENTIFIER);
- return names.error;
- }
-}
-
- /**
- * Qualident = Ident { DOT Ident }
- */
- public JCExpression qualident() {
- JCExpression t = toP(F.at(S.pos()).Ident(ident()));
- while (S.token() == DOT) {
- int pos = S.pos();
- S.nextToken();
- t = toP(F.at(pos).Select(t, ident()));
- }
- return t;
- }
-
- /**
- * Literal =
- * INTLITERAL
- * | LONGLITERAL
- * | FLOATLITERAL
- * | DOUBLELITERAL
- * | CHARLITERAL
- * | STRINGLITERAL
- * | TRUE
- * | FALSE
- * | NULL
- */
- JCExpression literal(Name prefix) {
- int pos = S.pos();
- JCExpression t = errorTree;
- switch (S.token()) {
- case INTLITERAL:
- try {
- t = F.at(pos).Literal(
- TypeTags.INT,
- Convert.string2int(strval(prefix), S.radix()));
- } catch (NumberFormatException ex) {
- log.error(S.pos(), "int.number.too.large", strval(prefix));
- }
- break;
- case LONGLITERAL:
- try {
- t = F.at(pos).Literal(
- TypeTags.LONG,
- new Long(Convert.string2long(strval(prefix), S.radix())));
- } catch (NumberFormatException ex) {
- log.error(S.pos(), "int.number.too.large", strval(prefix));
- }
- break;
- case FLOATLITERAL: {
- String proper = (S.radix() == 16 ? ("0x"+ S.stringVal()) : S.stringVal());
- Float n;
- try {
- n = Float.valueOf(proper);
- } catch (NumberFormatException ex) {
- // error already repoted in scanner
- n = Float.NaN;
- }
- if (n.floatValue() == 0.0f && !isZero(proper))
- log.error(S.pos(), "fp.number.too.small");
- else if (n.floatValue() == Float.POSITIVE_INFINITY)
- log.error(S.pos(), "fp.number.too.large");
- else
- t = F.at(pos).Literal(TypeTags.FLOAT, n);
- break;
- }
- case DOUBLELITERAL: {
- String proper = (S.radix() == 16 ? ("0x"+ S.stringVal()) : S.stringVal());
- Double n;
- try {
- n = Double.valueOf(proper);
- } catch (NumberFormatException ex) {
- // error already reported in scanner
- n = Double.NaN;
- }
- if (n.doubleValue() == 0.0d && !isZero(proper))
- log.error(S.pos(), "fp.number.too.small");
- else if (n.doubleValue() == Double.POSITIVE_INFINITY)
- log.error(S.pos(), "fp.number.too.large");
- else
- t = F.at(pos).Literal(TypeTags.DOUBLE, n);
- break;
- }
- case CHARLITERAL:
- t = F.at(pos).Literal(
- TypeTags.CHAR,
- S.stringVal().charAt(0) + 0);
- break;
- case STRINGLITERAL:
- t = F.at(pos).Literal(
- TypeTags.CLASS,
- S.stringVal());
- break;
- case TRUE: case FALSE:
- t = F.at(pos).Literal(
- TypeTags.BOOLEAN,
- (S.token() == TRUE ? 1 : 0));
- break;
- case NULL:
- t = F.at(pos).Literal(
- TypeTags.BOT,
- null);
- break;
- default:
- assert false;
- }
- if (t == errorTree)
- t = F.at(pos).Erroneous();
- storeEnd(t, S.endPos());
- S.nextToken();
- return t;
- }
-//where
- boolean isZero(String s) {
- char[] cs = s.toCharArray();
- int base = ((Character.toLowerCase(s.charAt(1)) == 'x') ? 16 : 10);
- int i = ((base==16) ? 2 : 0);
- while (i < cs.length && (cs[i] == '0' || cs[i] == '.')) i++;
- return !(i < cs.length && (Character.digit(cs[i], base) > 0));
- }
-
- String strval(Name prefix) {
- String s = S.stringVal();
- return (prefix.len == 0) ? s : prefix + s;
- }
-
- /** terms can be either expressions or types.
- */
- public JCExpression expression() {
- return term(EXPR);
- }
-
- public JCExpression type() {
- return term(TYPE);
- }
-
- JCExpression term(int newmode) {
- int prevmode = mode;
- mode = newmode;
- JCExpression t = term();
- lastmode = mode;
- mode = prevmode;
- return t;
- }
+ JCCompilationUnit parseCompilationUnit();
/**
- * Expression = Expression1 [ExpressionRest]
- * ExpressionRest = [AssignmentOperator Expression1]
- * AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" |
- * "&=" | "|=" | "^=" |
- * "%=" | "<<=" | ">>=" | ">>>="
- * Type = Type1
- * TypeNoParams = TypeNoParams1
- * StatementExpression = Expression
- * ConstantExpression = Expression
- */
- JCExpression term() {
- JCExpression t = term1();
- if ((mode & EXPR) != 0 &&
- S.token() == EQ || PLUSEQ.compareTo(S.token()) <= 0 && S.token().compareTo(GTGTGTEQ) <= 0)
- return termRest(t);
- else
- return t;
- }
-
- JCExpression termRest(JCExpression t) {
- switch (S.token()) {
- case EQ: {
- int pos = S.pos();
- S.nextToken();
- mode = EXPR;
- JCExpression t1 = term();
- return toP(F.at(pos).Assign(t, t1));
- }
- case PLUSEQ:
- case SUBEQ:
- case STAREQ:
- case SLASHEQ:
- case PERCENTEQ:
- case AMPEQ:
- case BAREQ:
- case CARETEQ:
- case LTLTEQ:
- case GTGTEQ:
- case GTGTGTEQ:
- int pos = S.pos();
- Token token = S.token();
- S.nextToken();
- mode = EXPR;
- JCExpression t1 = term();
- return F.at(pos).Assignop(optag(token), t, t1);
- default:
- return t;
- }
- }
-
- /** Expression1 = Expression2 [Expression1Rest]
- * Type1 = Type2
- * TypeNoParams1 = TypeNoParams2
- */
- JCExpression term1() {
- JCExpression t = term2();
- if ((mode & EXPR) != 0 && S.token() == QUES) {
- mode = EXPR;
- return term1Rest(t);
- } else {
- return t;
- }
- }
-
- /** Expression1Rest = ["?" Expression ":" Expression1]
- */
- JCExpression term1Rest(JCExpression t) {
- if (S.token() == QUES) {
- int pos = S.pos();
- S.nextToken();
- JCExpression t1 = term();
- accept(COLON);
- JCExpression t2 = term1();
- return F.at(pos).Conditional(t, t1, t2);
- } else {
- return t;
- }
- }
-
- /** Expression2 = Expression3 [Expression2Rest]
- * Type2 = Type3
- * TypeNoParams2 = TypeNoParams3
- */
- JCExpression term2() {
- JCExpression t = term3();
- if ((mode & EXPR) != 0 && prec(S.token()) >= TreeInfo.orPrec) {
- mode = EXPR;
- return term2Rest(t, TreeInfo.orPrec);
- } else {
- return t;
- }
- }
-
- /* Expression2Rest = {infixop Expression3}
- * | Expression3 instanceof Type
- * infixop = "||"
- * | "&&"
- * | "|"
- * | "^"
- * | "&"
- * | "==" | "!="
- * | "<" | ">" | "<=" | ">="
- * | "<<" | ">>" | ">>>"
- * | "+" | "-"
- * | "*" | "/" | "%"
- */
- JCExpression term2Rest(JCExpression t, int minprec) {
- List<JCExpression[]> savedOd = odStackSupply.elems;
- JCExpression[] odStack = newOdStack();
- List<Token[]> savedOp = opStackSupply.elems;
- Token[] opStack = newOpStack();
- // optimization, was odStack = new Tree[...]; opStack = new Tree[...];
- int top = 0;
- odStack[0] = t;
- int startPos = S.pos();
- Token topOp = ERROR;
- while (prec(S.token()) >= minprec) {
- opStack[top] = topOp;
- top++;
- topOp = S.token();
- int pos = S.pos();
- S.nextToken();
- odStack[top] = topOp == INSTANCEOF ? type() : term3();
- while (top > 0 && prec(topOp) >= prec(S.token())) {
- odStack[top-1] = makeOp(pos, topOp, odStack[top-1],
- odStack[top]);
- top--;
- topOp = opStack[top];
- }
- }
- assert top == 0;
- t = odStack[0];
-
- if (t.getTag() == JCTree.PLUS) {
- StringBuffer buf = foldStrings(t);
- if (buf != null) {
- t = toP(F.at(startPos).Literal(TypeTags.CLASS, buf.toString()));
- }
- }
-
- odStackSupply.elems = savedOd; // optimization
- opStackSupply.elems = savedOp; // optimization
- return t;
- }
-//where
- /** Construct a binary or type test node.
- */
- private JCExpression makeOp(int pos,
- Token topOp,
- JCExpression od1,
- JCExpression od2)
- {
- if (topOp == INSTANCEOF) {
- return F.at(pos).TypeTest(od1, od2);
- } else {
- return F.at(pos).Binary(optag(topOp), od1, od2);
- }
- }
- /** If tree is a concatenation of string literals, replace it
- * by a single literal representing the concatenated string.
- */
- protected StringBuffer foldStrings(JCTree tree) {
- List<String> buf = List.nil();
- while (true) {
- if (tree.getTag() == JCTree.LITERAL) {
- JCLiteral lit = (JCLiteral) tree;
- if (lit.typetag == TypeTags.CLASS) {
- StringBuffer sbuf =
- new StringBuffer((String)lit.value);
- while (buf.nonEmpty()) {
- sbuf.append(buf.head);
- buf = buf.tail;
- }
- return sbuf;
- }
- } else if (tree.getTag() == JCTree.PLUS) {
- JCBinary op = (JCBinary)tree;
- if (op.rhs.getTag() == JCTree.LITERAL) {
- JCLiteral lit = (JCLiteral) op.rhs;
- if (lit.typetag == TypeTags.CLASS) {
- buf = buf.prepend((String) lit.value);
- tree = op.lhs;
- continue;
- }
- }
- }
- return null;
- }
- }
-
- /** optimization: To save allocating a new operand/operator stack
- * for every binary operation, we use supplys.
- */
- ListBuffer<JCExpression[]> odStackSupply = new ListBuffer<JCExpression[]>();
- ListBuffer<Token[]> opStackSupply = new ListBuffer<Token[]>();
-
- private JCExpression[] newOdStack() {
- if (odStackSupply.elems == odStackSupply.last)
- odStackSupply.append(new JCExpression[infixPrecedenceLevels + 1]);
- JCExpression[] odStack = odStackSupply.elems.head;
- odStackSupply.elems = odStackSupply.elems.tail;
- return odStack;
- }
-
- private Token[] newOpStack() {
- if (opStackSupply.elems == opStackSupply.last)
- opStackSupply.append(new Token[infixPrecedenceLevels + 1]);
- Token[] opStack = opStackSupply.elems.head;
- opStackSupply.elems = opStackSupply.elems.tail;
- return opStack;
- }
-
- /** Expression3 = PrefixOp Expression3
- * | "(" Expr | TypeNoParams ")" Expression3
- * | Primary {Selector} {PostfixOp}
- * Primary = "(" Expression ")"
- * | Literal
- * | [TypeArguments] THIS [Arguments]
- * | [TypeArguments] SUPER SuperSuffix
- * | NEW [TypeArguments] Creator
- * | Ident { "." Ident }
- * [ "[" ( "]" BracketsOpt "." CLASS | Expression "]" )
- * | Arguments
- * | "." ( CLASS | THIS | [TypeArguments] SUPER Arguments | NEW [TypeArguments] InnerCreator )
- * ]
- * | BasicType BracketsOpt "." CLASS
- * PrefixOp = "++" | "--" | "!" | "~" | "+" | "-"
- * PostfixOp = "++" | "--"
- * Type3 = Ident { "." Ident } [TypeArguments] {TypeSelector} BracketsOpt
- * | BasicType
- * TypeNoParams3 = Ident { "." Ident } BracketsOpt
- * Selector = "." [TypeArguments] Ident [Arguments]
- * | "." THIS
- * | "." [TypeArguments] SUPER SuperSuffix
- * | "." NEW [TypeArguments] InnerCreator
- * | "[" Expression "]"
- * TypeSelector = "." Ident [TypeArguments]
- * SuperSuffix = Arguments | "." Ident [Arguments]
+ * Parse an expression.
+ * @return an expression
*/
- protected JCExpression term3() {
- int pos = S.pos();
- JCExpression t;
- List<JCExpression> typeArgs = typeArgumentsOpt(EXPR);
- switch (S.token()) {
- case QUES:
- if ((mode & TYPE) != 0 && (mode & (TYPEARG|NOPARAMS)) == TYPEARG) {
- mode = TYPE;
- return typeArgument();
- } else
- return illegal();
- case PLUSPLUS: case SUBSUB: case BANG: case TILDE: case PLUS: case SUB:
- if (typeArgs == null && (mode & EXPR) != 0) {
- Token token = S.token();
- S.nextToken();
- mode = EXPR;
- if (token == SUB &&
- (S.token() == INTLITERAL || S.token() == LONGLITERAL) &&
- S.radix() == 10) {
- mode = EXPR;
- t = literal(names.hyphen);
- } else {
- t = term3();
- return F.at(pos).Unary(unoptag(token), t);
- }
- } else return illegal();
- break;
- case LPAREN:
- if (typeArgs == null && (mode & EXPR) != 0) {
- S.nextToken();
- mode = EXPR | TYPE | NOPARAMS;
- t = term3();
- if ((mode & TYPE) != 0 && S.token() == LT) {
- // Could be a cast to a parameterized type
- int op = JCTree.LT;
- int pos1 = S.pos();
- S.nextToken();
- mode &= (EXPR | TYPE);
- mode |= TYPEARG;
- JCExpression t1 = term3();
- if ((mode & TYPE) != 0 &&
- (S.token() == COMMA || S.token() == GT)) {
- mode = TYPE;
- ListBuffer<JCExpression> args = new ListBuffer<JCExpression>();
- args.append(t1);
- while (S.token() == COMMA) {
- S.nextToken();
- args.append(typeArgument());
- }
- accept(GT);
- t = F.at(pos1).TypeApply(t, args.toList());
- checkGenerics();
- t = bracketsOpt(toP(t));
- } else if ((mode & EXPR) != 0) {
- mode = EXPR;
- t = F.at(pos1).Binary(op, t, term2Rest(t1, TreeInfo.shiftPrec));
- t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec)));
- } else {
- accept(GT);
- }
- } else {
- t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec)));
- }
- accept(RPAREN);
- lastmode = mode;
- mode = EXPR;
- if ((lastmode & EXPR) == 0) {
- JCExpression t1 = term3();
- return F.at(pos).TypeCast(t, t1);
- } else if ((lastmode & TYPE) != 0) {
- switch (S.token()) {
- /*case PLUSPLUS: case SUBSUB: */
- case BANG: case TILDE:
- case LPAREN: case THIS: case SUPER:
- case INTLITERAL: case LONGLITERAL: case FLOATLITERAL:
- case DOUBLELITERAL: case CHARLITERAL: case STRINGLITERAL:
- case TRUE: case FALSE: case NULL:
- case NEW: case IDENTIFIER: case ASSERT: case ENUM:
- case BYTE: case SHORT: case CHAR: case INT:
- case LONG: case FLOAT: case DOUBLE: case BOOLEAN: case VOID:
- JCExpression t1 = term3();
- return F.at(pos).TypeCast(t, t1);
- }
- }
- } else return illegal();
- t = toP(F.at(pos).Parens(t));
- break;
- case THIS:
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- t = to(F.at(pos).Ident(names._this));
- S.nextToken();
- if (typeArgs == null)
- t = argumentsOpt(null, t);
- else
- t = arguments(typeArgs, t);
- typeArgs = null;
- } else return illegal();
- break;
- case SUPER:
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- t = to(superSuffix(typeArgs, F.at(pos).Ident(names._super)));
- typeArgs = null;
- } else return illegal();
- break;
- case INTLITERAL: case LONGLITERAL: case FLOATLITERAL: case DOUBLELITERAL:
- case CHARLITERAL: case STRINGLITERAL:
- case TRUE: case FALSE: case NULL:
- if (typeArgs == null && (mode & EXPR) != 0) {
- mode = EXPR;
- t = literal(names.empty);
- } else return illegal();
- break;
- case NEW:
- if (typeArgs != null) return illegal();
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- S.nextToken();
- if (S.token() == LT) typeArgs = typeArguments();
- t = creator(pos, typeArgs);
- typeArgs = null;
- } else return illegal();
- break;
- case IDENTIFIER: case ASSERT: case ENUM:
- if (typeArgs != null) return illegal();
- t = toP(F.at(S.pos()).Ident(ident()));
- loop: while (true) {
- pos = S.pos();
- switch (S.token()) {
- case LBRACKET:
- S.nextToken();
- if (S.token() == RBRACKET) {
- S.nextToken();
- t = bracketsOpt(t);
- t = toP(F.at(pos).TypeArray(t));
- t = bracketsSuffix(t);
- } else {
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- JCExpression t1 = term();
- t = to(F.at(pos).Indexed(t, t1));
- }
- accept(RBRACKET);
- }
- break loop;
- case LPAREN:
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- t = arguments(typeArgs, t);
- typeArgs = null;
- }
- break loop;
- case DOT:
- S.nextToken();
- int oldmode = mode;
- mode &= ~NOPARAMS;
- typeArgs = typeArgumentsOpt(EXPR);
- mode = oldmode;
- if ((mode & EXPR) != 0) {
- switch (S.token()) {
- case CLASS:
- if (typeArgs != null) return illegal();
- mode = EXPR;
- t = to(F.at(pos).Select(t, names._class));
- S.nextToken();
- break loop;
- case THIS:
- if (typeArgs != null) return illegal();
- mode = EXPR;
- t = to(F.at(pos).Select(t, names._this));
- S.nextToken();
- break loop;
- case SUPER:
- mode = EXPR;
- t = to(F.at(pos).Select(t, names._super));
- t = superSuffix(typeArgs, t);
- typeArgs = null;
- break loop;
- case NEW:
- if (typeArgs != null) return illegal();
- mode = EXPR;
- int pos1 = S.pos();
- S.nextToken();
- if (S.token() == LT) typeArgs = typeArguments();
- t = innerCreator(pos1, typeArgs, t);
- typeArgs = null;
- break loop;
- }
- }
- // typeArgs saved for next loop iteration.
- t = toP(F.at(pos).Select(t, ident()));
- break;
- default:
- break loop;
- }
- }
- if (typeArgs != null) illegal();
- t = typeArgumentsOpt(t);
- break;
- case BYTE: case SHORT: case CHAR: case INT: case LONG: case FLOAT:
- case DOUBLE: case BOOLEAN:
- if (typeArgs != null) illegal();
- t = bracketsSuffix(bracketsOpt(basicType()));
- break;
- case VOID:
- if (typeArgs != null) illegal();
- if ((mode & EXPR) != 0) {
- S.nextToken();
- if (S.token() == DOT) {
- JCPrimitiveTypeTree ti = toP(F.at(pos).TypeIdent(TypeTags.VOID));
- t = bracketsSuffix(ti);
- } else {
- return illegal(pos);
- }
- } else {
- return illegal();
- }
- break;
- default:
- return illegal();
- }
- if (typeArgs != null) illegal();
- while (true) {
- int pos1 = S.pos();
- if (S.token() == LBRACKET) {
- S.nextToken();
- if ((mode & TYPE) != 0) {
- int oldmode = mode;
- mode = TYPE;
- if (S.token() == RBRACKET) {
- S.nextToken();
- t = bracketsOpt(t);
- t = toP(F.at(pos1).TypeArray(t));
- return t;
- }
- mode = oldmode;
- }
- if ((mode & EXPR) != 0) {
- mode = EXPR;
- JCExpression t1 = term();
- t = to(F.at(pos1).Indexed(t, t1));
- }
- accept(RBRACKET);
- } else if (S.token() == DOT) {
- S.nextToken();
- typeArgs = typeArgumentsOpt(EXPR);
- if (S.token() == SUPER && (mode & EXPR) != 0) {
- mode = EXPR;
- t = to(F.at(pos1).Select(t, names._super));
- S.nextToken();
- t = arguments(typeArgs, t);
- typeArgs = null;
- } else if (S.token() == NEW && (mode & EXPR) != 0) {
- if (typeArgs != null) return illegal();
- mode = EXPR;
- int pos2 = S.pos();
- S.nextToken();
- if (S.token() == LT) typeArgs = typeArguments();
- t = innerCreator(pos2, typeArgs, t);
- typeArgs = null;
- } else {
- t = toP(F.at(pos1).Select(t, ident()));
- t = argumentsOpt(typeArgs, typeArgumentsOpt(t));
- typeArgs = null;
- }
- } else {
- break;
- }
- }
- while ((S.token() == PLUSPLUS || S.token() == SUBSUB) && (mode & EXPR) != 0) {
- mode = EXPR;
- t = to(F.at(S.pos()).Unary(
- S.token() == PLUSPLUS ? JCTree.POSTINC : JCTree.POSTDEC, t));
- S.nextToken();
- }
- return toP(t);
- }
-
- /** SuperSuffix = Arguments | "." [TypeArguments] Ident [Arguments]
- */
- JCExpression superSuffix(List<JCExpression> typeArgs, JCExpression t) {
- S.nextToken();
- if (S.token() == LPAREN || typeArgs != null) {
- t = arguments(typeArgs, t);
- } else {
- int pos = S.pos();
- accept(DOT);
- typeArgs = (S.token() == LT) ? typeArguments() : null;
- t = toP(F.at(pos).Select(t, ident()));
- t = argumentsOpt(typeArgs, t);
- }
- return t;
- }
-
- /** BasicType = BYTE | SHORT | CHAR | INT | LONG | FLOAT | DOUBLE | BOOLEAN
- */
- JCPrimitiveTypeTree basicType() {
- JCPrimitiveTypeTree t = to(F.at(S.pos()).TypeIdent(typetag(S.token())));
- S.nextToken();
- return t;
- }
-
- /** ArgumentsOpt = [ Arguments ]
- */
- JCExpression argumentsOpt(List<JCExpression> typeArgs, JCExpression t) {
- if ((mode & EXPR) != 0 && S.token() == LPAREN || typeArgs != null) {
- mode = EXPR;
- return arguments(typeArgs, t);
- } else {
- return t;
- }
- }
-
- /** Arguments = "(" [Expression { COMMA Expression }] ")"
- */
- List<JCExpression> arguments() {
- ListBuffer<JCExpression> args = lb();
- if (S.token() == LPAREN) {
- S.nextToken();
- if (S.token() != RPAREN) {
- args.append(expression());
- while (S.token() == COMMA) {
- S.nextToken();
- args.append(expression());
- }
- }
- accept(RPAREN);
- } else {
- syntaxError(S.pos(), "expected", LPAREN);
- }
- return args.toList();
- }
-
- JCMethodInvocation arguments(List<JCExpression> typeArgs, JCExpression t) {
- int pos = S.pos();
- List<JCExpression> args = arguments();
- return toP(F.at(pos).Apply(typeArgs, t, args));
- }
-
- /** TypeArgumentsOpt = [ TypeArguments ]
- */
- JCExpression typeArgumentsOpt(JCExpression t) {
- if (S.token() == LT &&
- (mode & TYPE) != 0 &&
- (mode & NOPARAMS) == 0) {
- mode = TYPE;
- checkGenerics();
- return typeArguments(t);
- } else {
- return t;
- }
- }
- List<JCExpression> typeArgumentsOpt() {
- return typeArgumentsOpt(TYPE);
- }
-
- List<JCExpression> typeArgumentsOpt(int useMode) {
- if (S.token() == LT) {
- checkGenerics();
- if ((mode & useMode) == 0 ||
- (mode & NOPARAMS) != 0) {
- illegal();
- }
- mode = useMode;
- return typeArguments();
- }
- return null;
- }
+ JCExpression parseExpression();
- /** TypeArguments = "<" TypeArgument {"," TypeArgument} ">"
- */
- List<JCExpression> typeArguments() {
- ListBuffer<JCExpression> args = lb();
- if (S.token() == LT) {
- S.nextToken();
- args.append(((mode & EXPR) == 0) ? typeArgument() : type());
- while (S.token() == COMMA) {
- S.nextToken();
- args.append(((mode & EXPR) == 0) ? typeArgument() : type());
- }
- switch (S.token()) {
- case GTGTGTEQ:
- S.token(GTGTEQ);
- break;
- case GTGTEQ:
- S.token(GTEQ);
- break;
- case GTEQ:
- S.token(EQ);
- break;
- case GTGTGT:
- S.token(GTGT);
- break;
- case GTGT:
- S.token(GT);
- break;
- default:
- accept(GT);
- break;
- }
- } else {
- syntaxError(S.pos(), "expected", LT);
- }
- return args.toList();
- }
-
- /** TypeArgument = Type
- * | "?"
- * | "?" EXTENDS Type {"&" Type}
- * | "?" SUPER Type
- */
- JCExpression typeArgument() {
- if (S.token() != QUES) return type();
- int pos = S.pos();
- S.nextToken();
- if (S.token() == EXTENDS) {
- TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.EXTENDS));
- S.nextToken();
- return F.at(pos).Wildcard(t, type());
- } else if (S.token() == SUPER) {
- TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.SUPER));
- S.nextToken();
- return F.at(pos).Wildcard(t, type());
- } else if (S.token() == IDENTIFIER) {
- //error recovery
- reportSyntaxError(S.prevEndPos(), "expected3",
- GT, EXTENDS, SUPER);
- TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND);
- JCExpression wc = toP(F.at(pos).Wildcard(t, null));
- JCIdent id = toP(F.at(S.pos()).Ident(ident()));
- return F.at(pos).Erroneous(List.<JCTree>of(wc, id));
- } else {
- TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND);
- return toP(F.at(pos).Wildcard(t, null));
- }
- }
-
- JCTypeApply typeArguments(JCExpression t) {
- int pos = S.pos();
- List<JCExpression> args = typeArguments();
- return toP(F.at(pos).TypeApply(t, args));
- }
-
- /** BracketsOpt = {"[" "]"}
- */
- private JCExpression bracketsOpt(JCExpression t) {
- if (S.token() == LBRACKET) {
- int pos = S.pos();
- S.nextToken();
- t = bracketsOptCont(t, pos);
- F.at(pos);
- }
- return t;
- }
-
- private JCArrayTypeTree bracketsOptCont(JCExpression t, int pos) {
- accept(RBRACKET);
- t = bracketsOpt(t);
- return toP(F.at(pos).TypeArray(t));
- }
-
- /** BracketsSuffixExpr = "." CLASS
- * BracketsSuffixType =
- */
- JCExpression bracketsSuffix(JCExpression t) {
- if ((mode & EXPR) != 0 && S.token() == DOT) {
- mode = EXPR;
- int pos = S.pos();
- S.nextToken();
- accept(CLASS);
- if (S.pos() == errorEndPos) {
- // error recovery
- Name name = null;
- if (S.token() == IDENTIFIER) {
- name = S.name();
- S.nextToken();
- } else {
- name = names.error;
- }
- t = F.at(pos).Erroneous(List.<JCTree>of(toP(F.at(pos).Select(t, name))));
- } else {
- t = toP(F.at(pos).Select(t, names._class));
- }
- } else if ((mode & TYPE) != 0) {
- mode = TYPE;
- } else {
- syntaxError(S.pos(), "dot.class.expected");
- }
- return t;
- }
-
- /** Creator = Qualident [TypeArguments] ( ArrayCreatorRest | ClassCreatorRest )
- */
- JCExpression creator(int newpos, List<JCExpression> typeArgs) {
- switch (S.token()) {
- case BYTE: case SHORT: case CHAR: case INT: case LONG: case FLOAT:
- case DOUBLE: case BOOLEAN:
- if (typeArgs == null)
- return arrayCreatorRest(newpos, basicType());
- break;
- default:
- }
- JCExpression t = qualident();
- int oldmode = mode;
- mode = TYPE;
- if (S.token() == LT) {
- checkGenerics();
- t = typeArguments(t);
- }
- while (S.token() == DOT) {
- int pos = S.pos();
- S.nextToken();
- t = toP(F.at(pos).Select(t, ident()));
- if (S.token() == LT) {
- checkGenerics();
- t = typeArguments(t);
- }
- }
- mode = oldmode;
- if (S.token() == LBRACKET) {
- JCExpression e = arrayCreatorRest(newpos, t);
- if (typeArgs != null) {
- int pos = newpos;
- if (!typeArgs.isEmpty() && typeArgs.head.pos != Position.NOPOS) {
- // note: this should always happen but we should
- // not rely on this as the parser is continuously
- // modified to improve error recovery.
- pos = typeArgs.head.pos;
- }
- setErrorEndPos(S.prevEndPos());
- reportSyntaxError(pos, "cannot.create.array.with.type.arguments");
- return toP(F.at(newpos).Erroneous(typeArgs.prepend(e)));
- }
- return e;
- } else if (S.token() == LPAREN) {
- return classCreatorRest(newpos, null, typeArgs, t);
- } else {
- reportSyntaxError(S.pos(), "expected2",
- LPAREN, LBRACKET);
- t = toP(F.at(newpos).NewClass(null, typeArgs, t, List.<JCExpression>nil(), null));
- return toP(F.at(newpos).Erroneous(List.<JCTree>of(t)));
- }
- }
-
- /** InnerCreator = Ident [TypeArguments] ClassCreatorRest
- */
- JCExpression innerCreator(int newpos, List<JCExpression> typeArgs, JCExpression encl) {
- JCExpression t = toP(F.at(S.pos()).Ident(ident()));
- if (S.token() == LT) {
- checkGenerics();
- t = typeArguments(t);
- }
- return classCreatorRest(newpos, encl, typeArgs, t);
- }
-
- /** ArrayCreatorRest = "[" ( "]" BracketsOpt ArrayInitializer
- * | Expression "]" {"[" Expression "]"} BracketsOpt )
- */
- JCExpression arrayCreatorRest(int newpos, JCExpression elemtype) {
- accept(LBRACKET);
- if (S.token() == RBRACKET) {
- accept(RBRACKET);
- elemtype = bracketsOpt(elemtype);
- if (S.token() == LBRACE) {
- return arrayInitializer(newpos, elemtype);
- } else {
- return syntaxError(S.pos(), "array.dimension.missing");
- }
- } else {
- ListBuffer<JCExpression> dims = new ListBuffer<JCExpression>();
- dims.append(expression());
- accept(RBRACKET);
- while (S.token() == LBRACKET) {
- int pos = S.pos();
- S.nextToken();
- if (S.token() == RBRACKET) {
- elemtype = bracketsOptCont(elemtype, pos);
- } else {
- dims.append(expression());
- accept(RBRACKET);
- }
- }
- return toP(F.at(newpos).NewArray(elemtype, dims.toList(), null));
- }
- }
-
- /** ClassCreatorRest = Arguments [ClassBody]
- */
- JCExpression classCreatorRest(int newpos,
- JCExpression encl,
- List<JCExpression> typeArgs,
- JCExpression t)
- {
- List<JCExpression> args = arguments();
- JCClassDecl body = null;
- if (S.token() == LBRACE) {
- int pos = S.pos();
- List<JCTree> defs = classOrInterfaceBody(names.empty, false);
- JCModifiers mods = F.at(Position.NOPOS).Modifiers(0);
- body = toP(F.at(pos).AnonymousClassDef(mods, defs));
- }
- return toP(F.at(newpos).NewClass(encl, typeArgs, t, args, body));
- }
-
- /** ArrayInitializer = "{" [VariableInitializer {"," VariableInitializer}] [","] "}"
- */
- JCExpression arrayInitializer(int newpos, JCExpression t) {
- accept(LBRACE);
- ListBuffer<JCExpression> elems = new ListBuffer<JCExpression>();
- if (S.token() == COMMA) {
- S.nextToken();
- } else if (S.token() != RBRACE) {
- elems.append(variableInitializer());
- while (S.token() == COMMA) {
- S.nextToken();
- if (S.token() == RBRACE) break;
- elems.append(variableInitializer());
- }
- }
- accept(RBRACE);
- return toP(F.at(newpos).NewArray(t, List.<JCExpression>nil(), elems.toList()));
- }
-
- /** VariableInitializer = ArrayInitializer | Expression
- */
- public JCExpression variableInitializer() {
- return S.token() == LBRACE ? arrayInitializer(S.pos(), null) : expression();
- }
-
- /** ParExpression = "(" Expression ")"
- */
- JCExpression parExpression() {
- accept(LPAREN);
- JCExpression t = expression();
- accept(RPAREN);
- return t;
- }
-
- /** Block = "{" BlockStatements "}"
- */
- JCBlock block(int pos, long flags) {
- accept(LBRACE);
- List<JCStatement> stats = blockStatements();
- JCBlock t = F.at(pos).Block(flags, stats);
- while (S.token() == CASE || S.token() == DEFAULT) {
- syntaxError("orphaned", S.token());
- switchBlockStatementGroups();
- }
- // the Block node has a field "endpos" for first char of last token, which is
- // usually but not necessarily the last char of the last token.
- t.endpos = S.pos();
- accept(RBRACE);
- return toP(t);
- }
-
- public JCBlock block() {
- return block(S.pos(), 0);
- }
-
- /** BlockStatements = { BlockStatement }
- * BlockStatement = LocalVariableDeclarationStatement
- * | ClassOrInterfaceOrEnumDeclaration
- * | [Ident ":"] Statement
- * LocalVariableDeclarationStatement
- * = { FINAL | '@' Annotation } Type VariableDeclarators ";"
- */
- @SuppressWarnings("fallthrough")
- List<JCStatement> blockStatements() {
-//todo: skip to anchor on error(?)
- int lastErrPos = -1;
- ListBuffer<JCStatement> stats = new ListBuffer<JCStatement>();
- while (true) {
- int pos = S.pos();
- switch (S.token()) {
- case RBRACE: case CASE: case DEFAULT: case EOF:
- return stats.toList();
- case LBRACE: case IF: case FOR: case WHILE: case DO: case TRY:
- case SWITCH: case SYNCHRONIZED: case RETURN: case THROW: case BREAK:
- case CONTINUE: case SEMI: case ELSE: case FINALLY: case CATCH:
- stats.append(statement());
- break;
- case MONKEYS_AT:
- case FINAL: {
- String dc = S.docComment();
- JCModifiers mods = modifiersOpt();
- if (S.token() == INTERFACE ||
- S.token() == CLASS ||
- allowEnums && S.token() == ENUM) {
- stats.append(classOrInterfaceOrEnumDeclaration(mods, dc));
- } else {
- JCExpression t = type();
- stats.appendList(variableDeclarators(mods, t,
- new ListBuffer<JCStatement>()));
- // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
- storeEnd(stats.elems.last(), S.endPos());
- accept(SEMI);
- }
- break;
- }
- case ABSTRACT: case STRICTFP: {
- String dc = S.docComment();
- JCModifiers mods = modifiersOpt();
- stats.append(classOrInterfaceOrEnumDeclaration(mods, dc));
- break;
- }
- case INTERFACE:
- case CLASS:
- stats.append(classOrInterfaceOrEnumDeclaration(modifiersOpt(),
- S.docComment()));
- break;
- case ENUM:
- case ASSERT:
- if (allowEnums && S.token() == ENUM) {
- log.error(S.pos(), "local.enum");
- stats.
- append(classOrInterfaceOrEnumDeclaration(modifiersOpt(),
- S.docComment()));
- break;
- } else if (allowAsserts && S.token() == ASSERT) {
- stats.append(statement());
- break;
- }
- /* fall through to default */
- default:
- Name name = S.name();
- JCExpression t = term(EXPR | TYPE);
- if (S.token() == COLON && t.getTag() == JCTree.IDENT) {
- S.nextToken();
- JCStatement stat = statement();
- stats.append(F.at(pos).Labelled(name, stat));
- } else if ((lastmode & TYPE) != 0 &&
- (S.token() == IDENTIFIER ||
- S.token() == ASSERT ||
- S.token() == ENUM)) {
- pos = S.pos();
- JCModifiers mods = F.at(Position.NOPOS).Modifiers(0);
- F.at(pos);
- stats.appendList(variableDeclarators(mods, t,
- new ListBuffer<JCStatement>()));
- // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
- storeEnd(stats.elems.last(), S.endPos());
- accept(SEMI);
- } else {
- // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon
- stats.append(to(F.at(pos).Exec(checkExprStat(t))));
- accept(SEMI);
- }
- }
-
- // error recovery
- if (S.pos() == lastErrPos)
- return stats.toList();
- if (S.pos() <= errorEndPos) {
- skip(false, true, true, true);
- lastErrPos = S.pos();
- }
-
- // ensure no dangling /** @deprecated */ active
- S.resetDeprecatedFlag();
- }
- }
-
- /** Statement =
- * Block
- * | IF ParExpression Statement [ELSE Statement]
- * | FOR "(" ForInitOpt ";" [Expression] ";" ForUpdateOpt ")" Statement
- * | FOR "(" FormalParameter : Expression ")" Statement
- * | WHILE ParExpression Statement
- * | DO Statement WHILE ParExpression ";"
- * | TRY Block ( Catches | [Catches] FinallyPart )
- * | SWITCH ParExpression "{" SwitchBlockStatementGroups "}"
- * | SYNCHRONIZED ParExpression Block
- * | RETURN [Expression] ";"
- * | THROW Expression ";"
- * | BREAK [Ident] ";"
- * | CONTINUE [Ident] ";"
- * | ASSERT Expression [ ":" Expression ] ";"
- * | ";"
- * | ExpressionStatement
- * | Ident ":" Statement
+ /**
+ * Parse a statement.
+ * @return an expression
*/
- @SuppressWarnings("fallthrough")
- public JCStatement statement() {
- int pos = S.pos();
- switch (S.token()) {
- case LBRACE:
- return block();
- case IF: {
- S.nextToken();
- JCExpression cond = parExpression();
- JCStatement thenpart = statement();
- JCStatement elsepart = null;
- if (S.token() == ELSE) {
- S.nextToken();
- elsepart = statement();
- }
- return F.at(pos).If(cond, thenpart, elsepart);
- }
- case FOR: {
- S.nextToken();
- accept(LPAREN);
- List<JCStatement> inits = S.token() == SEMI ? List.<JCStatement>nil() : forInit();
- if (inits.length() == 1 &&
- inits.head.getTag() == JCTree.VARDEF &&
- ((JCVariableDecl) inits.head).init == null &&
- S.token() == COLON) {
- checkForeach();
- JCVariableDecl var = (JCVariableDecl)inits.head;
- accept(COLON);
- JCExpression expr = expression();
- accept(RPAREN);
- JCStatement body = statement();
- return F.at(pos).ForeachLoop(var, expr, body);
- } else {
- accept(SEMI);
- JCExpression cond = S.token() == SEMI ? null : expression();
- accept(SEMI);
- List<JCExpressionStatement> steps = S.token() == RPAREN ? List.<JCExpressionStatement>nil() : forUpdate();
- accept(RPAREN);
- JCStatement body = statement();
- return F.at(pos).ForLoop(inits, cond, steps, body);
- }
- }
- case WHILE: {
- S.nextToken();
- JCExpression cond = parExpression();
- JCStatement body = statement();
- return F.at(pos).WhileLoop(cond, body);
- }
- case DO: {
- S.nextToken();
- JCStatement body = statement();
- accept(WHILE);
- JCExpression cond = parExpression();
- JCDoWhileLoop t = to(F.at(pos).DoLoop(body, cond));
- accept(SEMI);
- return t;
- }
- case TRY: {
- S.nextToken();
- JCBlock body = block();
- ListBuffer<JCCatch> catchers = new ListBuffer<JCCatch>();
- JCBlock finalizer = null;
- if (S.token() == CATCH || S.token() == FINALLY) {
- while (S.token() == CATCH) catchers.append(catchClause());
- if (S.token() == FINALLY) {
- S.nextToken();
- finalizer = block();
- }
- } else {
- log.error(pos, "try.without.catch.or.finally");
- }
- return F.at(pos).Try(body, catchers.toList(), finalizer);
- }
- case SWITCH: {
- S.nextToken();
- JCExpression selector = parExpression();
- accept(LBRACE);
- List<JCCase> cases = switchBlockStatementGroups();
- JCSwitch t = to(F.at(pos).Switch(selector, cases));
- accept(RBRACE);
- return t;
- }
- case SYNCHRONIZED: {
- S.nextToken();
- JCExpression lock = parExpression();
- JCBlock body = block();
- return F.at(pos).Synchronized(lock, body);
- }
- case RETURN: {
- S.nextToken();
- JCExpression result = S.token() == SEMI ? null : expression();
- JCReturn t = to(F.at(pos).Return(result));
- accept(SEMI);
- return t;
- }
- case THROW: {
- S.nextToken();
- JCExpression exc = expression();
- JCThrow t = to(F.at(pos).Throw(exc));
- accept(SEMI);
- return t;
- }
- case BREAK: {
- S.nextToken();
- Name label = (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM) ? ident() : null;
- JCBreak t = to(F.at(pos).Break(label));
- accept(SEMI);
- return t;
- }
- case CONTINUE: {
- S.nextToken();
- Name label = (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM) ? ident() : null;
- JCContinue t = to(F.at(pos).Continue(label));
- accept(SEMI);
- return t;
- }
- case SEMI:
- S.nextToken();
- return toP(F.at(pos).Skip());
- case ELSE:
- return toP(F.Exec(syntaxError("else.without.if")));
- case FINALLY:
- return toP(F.Exec(syntaxError("finally.without.try")));
- case CATCH:
- return toP(F.Exec(syntaxError("catch.without.try")));
- case ASSERT: {
- if (allowAsserts && S.token() == ASSERT) {
- S.nextToken();
- JCExpression assertion = expression();
- JCExpression message = null;
- if (S.token() == COLON) {
- S.nextToken();
- message = expression();
- }
- JCAssert t = to(F.at(pos).Assert(assertion, message));
- accept(SEMI);
- return t;
- }
- /* else fall through to default case */
- }
- case ENUM:
- default:
- Name name = S.name();
- JCExpression expr = expression();
- if (S.token() == COLON && expr.getTag() == JCTree.IDENT) {
- S.nextToken();
- JCStatement stat = statement();
- return F.at(pos).Labelled(name, stat);
- } else {
- // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon
- JCExpressionStatement stat = to(F.at(pos).Exec(checkExprStat(expr)));
- accept(SEMI);
- return stat;
- }
- }
- }
-
- /** CatchClause = CATCH "(" FormalParameter ")" Block
- */
- JCCatch catchClause() {
- int pos = S.pos();
- accept(CATCH);
- accept(LPAREN);
- JCVariableDecl formal =
- variableDeclaratorId(optFinal(Flags.PARAMETER),
- qualident());
- accept(RPAREN);
- JCBlock body = block();
- return F.at(pos).Catch(formal, body);
- }
-
- /** SwitchBlockStatementGroups = { SwitchBlockStatementGroup }
- * SwitchBlockStatementGroup = SwitchLabel BlockStatements
- * SwitchLabel = CASE ConstantExpression ":" | DEFAULT ":"
- */
- List<JCCase> switchBlockStatementGroups() {
- ListBuffer<JCCase> cases = new ListBuffer<JCCase>();
- while (true) {
- int pos = S.pos();
- switch (S.token()) {
- case CASE: {
- S.nextToken();
- JCExpression pat = expression();
- accept(COLON);
- List<JCStatement> stats = blockStatements();
- JCCase c = F.at(pos).Case(pat, stats);
- if (stats.isEmpty())
- storeEnd(c, S.prevEndPos());
- cases.append(c);
- break;
- }
- case DEFAULT: {
- S.nextToken();
- accept(COLON);
- List<JCStatement> stats = blockStatements();
- JCCase c = F.at(pos).Case(null, stats);
- if (stats.isEmpty())
- storeEnd(c, S.prevEndPos());
- cases.append(c);
- break;
- }
- case RBRACE: case EOF:
- return cases.toList();
- default:
- S.nextToken(); // to ensure progress
- syntaxError(pos, "expected3",
- CASE, DEFAULT, RBRACE);
- }
- }
- }
-
- /** MoreStatementExpressions = { COMMA StatementExpression }
- */
- <T extends ListBuffer<? super JCExpressionStatement>> T moreStatementExpressions(int pos,
- JCExpression first,
- T stats) {
- // This Exec is a "StatementExpression"; it subsumes no terminating token
- stats.append(toP(F.at(pos).Exec(checkExprStat(first))));
- while (S.token() == COMMA) {
- S.nextToken();
- pos = S.pos();
- JCExpression t = expression();
- // This Exec is a "StatementExpression"; it subsumes no terminating token
- stats.append(toP(F.at(pos).Exec(checkExprStat(t))));
- }
- return stats;
- }
-
- /** ForInit = StatementExpression MoreStatementExpressions
- * | { FINAL | '@' Annotation } Type VariableDeclarators
- */
- List<JCStatement> forInit() {
- ListBuffer<JCStatement> stats = lb();
- int pos = S.pos();
- if (S.token() == FINAL || S.token() == MONKEYS_AT) {
- return variableDeclarators(optFinal(0), type(), stats).toList();
- } else {
- JCExpression t = term(EXPR | TYPE);
- if ((lastmode & TYPE) != 0 &&
- (S.token() == IDENTIFIER || S.token() == ASSERT || S.token() == ENUM))
- return variableDeclarators(modifiersOpt(), t, stats).toList();
- else
- return moreStatementExpressions(pos, t, stats).toList();
- }
- }
-
- /** ForUpdate = StatementExpression MoreStatementExpressions
- */
- List<JCExpressionStatement> forUpdate() {
- return moreStatementExpressions(S.pos(),
- expression(),
- new ListBuffer<JCExpressionStatement>()).toList();
- }
-
- /** AnnotationsOpt = { '@' Annotation }
- */
- List<JCAnnotation> annotationsOpt() {
- if (S.token() != MONKEYS_AT) return List.nil(); // optimization
- ListBuffer<JCAnnotation> buf = new ListBuffer<JCAnnotation>();
- while (S.token() == MONKEYS_AT) {
- int pos = S.pos();
- S.nextToken();
- buf.append(annotation(pos));
- }
- return buf.toList();
- }
+ JCStatement parseStatement();
- /** ModifiersOpt = { Modifier }
- * Modifier = PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL
- * | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | "@"
- * | "@" Annotation
- */
- JCModifiers modifiersOpt() {
- return modifiersOpt(null);
- }
- JCModifiers modifiersOpt(JCModifiers partial) {
- long flags = (partial == null) ? 0 : partial.flags;
- if (S.deprecatedFlag()) {
- flags |= Flags.DEPRECATED;
- S.resetDeprecatedFlag();
- }
- ListBuffer<JCAnnotation> annotations = new ListBuffer<JCAnnotation>();
- if (partial != null) annotations.appendList(partial.annotations);
- int pos = S.pos();
- int lastPos = Position.NOPOS;
- loop:
- while (true) {
- long flag;
- switch (S.token()) {
- case PRIVATE : flag = Flags.PRIVATE; break;
- case PROTECTED : flag = Flags.PROTECTED; break;
- case PUBLIC : flag = Flags.PUBLIC; break;
- case STATIC : flag = Flags.STATIC; break;
- case TRANSIENT : flag = Flags.TRANSIENT; break;
- case FINAL : flag = Flags.FINAL; break;
- case ABSTRACT : flag = Flags.ABSTRACT; break;
- case NATIVE : flag = Flags.NATIVE; break;
- case VOLATILE : flag = Flags.VOLATILE; break;
- case SYNCHRONIZED: flag = Flags.SYNCHRONIZED; break;
- case STRICTFP : flag = Flags.STRICTFP; break;
- case MONKEYS_AT : flag = Flags.ANNOTATION; break;
- default: break loop;
- }
- if ((flags & flag) != 0) log.error(S.pos(), "repeated.modifier");
- lastPos = S.pos();
- S.nextToken();
- if (flag == Flags.ANNOTATION) {
- checkAnnotations();
- if (S.token() != INTERFACE) {
- JCAnnotation ann = annotation(lastPos);
- // if first modifier is an annotation, set pos to annotation's.
- if (flags == 0 && annotations.isEmpty())
- pos = ann.pos;
- annotations.append(ann);
- lastPos = ann.pos;
- flag = 0;
- }
- }
- flags |= flag;
- }
- switch (S.token()) {
- case ENUM: flags |= Flags.ENUM; break;
- case INTERFACE: flags |= Flags.INTERFACE; break;
- default: break;
- }
-
- /* A modifiers tree with no modifier tokens or annotations
- * has no text position. */
- if (flags == 0 && annotations.isEmpty())
- pos = Position.NOPOS;
-
- JCModifiers mods = F.at(pos).Modifiers(flags, annotations.toList());
- if (pos != Position.NOPOS)
- storeEnd(mods, S.prevEndPos());
- return mods;
- }
-
- /** Annotation = "@" Qualident [ "(" AnnotationFieldValues ")" ]
- * @param pos position of "@" token
- */
- JCAnnotation annotation(int pos) {
- // accept(AT); // AT consumed by caller
- checkAnnotations();
- JCTree ident = qualident();
- List<JCExpression> fieldValues = annotationFieldValuesOpt();
- JCAnnotation ann = F.at(pos).Annotation(ident, fieldValues);
- storeEnd(ann, S.prevEndPos());
- return ann;
- }
-
- List<JCExpression> annotationFieldValuesOpt() {
- return (S.token() == LPAREN) ? annotationFieldValues() : List.<JCExpression>nil();
- }
-
- /** AnnotationFieldValues = "(" [ AnnotationFieldValue { "," AnnotationFieldValue } ] ")" */
- List<JCExpression> annotationFieldValues() {
- accept(LPAREN);
- ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>();
- if (S.token() != RPAREN) {
- buf.append(annotationFieldValue());
- while (S.token() == COMMA) {
- S.nextToken();
- buf.append(annotationFieldValue());
- }
- }
- accept(RPAREN);
- return buf.toList();
- }
-
- /** AnnotationFieldValue = AnnotationValue
- * | Identifier "=" AnnotationValue
- */
- JCExpression annotationFieldValue() {
- if (S.token() == IDENTIFIER) {
- mode = EXPR;
- JCExpression t1 = term1();
- if (t1.getTag() == JCTree.IDENT && S.token() == EQ) {
- int pos = S.pos();
- accept(EQ);
- return toP(F.at(pos).Assign(t1, annotationValue()));
- } else {
- return t1;
- }
- }
- return annotationValue();
- }
-
- /* AnnotationValue = ConditionalExpression
- * | Annotation
- * | "{" [ AnnotationValue { "," AnnotationValue } ] "}"
- */
- JCExpression annotationValue() {
- int pos;
- switch (S.token()) {
- case MONKEYS_AT:
- pos = S.pos();
- S.nextToken();
- return annotation(pos);
- case LBRACE:
- pos = S.pos();
- accept(LBRACE);
- ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>();
- if (S.token() != RBRACE) {
- buf.append(annotationValue());
- while (S.token() == COMMA) {
- S.nextToken();
- if (S.token() == RPAREN) break;
- buf.append(annotationValue());
- }
- }
- accept(RBRACE);
- return toP(F.at(pos).NewArray(null, List.<JCExpression>nil(), buf.toList()));
- default:
- mode = EXPR;
- return term1();
- }
- }
-
- /** VariableDeclarators = VariableDeclarator { "," VariableDeclarator }
- */
- public <T extends ListBuffer<? super JCVariableDecl>> T variableDeclarators(JCModifiers mods,
- JCExpression type,
- T vdefs)
- {
- return variableDeclaratorsRest(S.pos(), mods, type, ident(), false, null, vdefs);
- }
-
- /** VariableDeclaratorsRest = VariableDeclaratorRest { "," VariableDeclarator }
- * ConstantDeclaratorsRest = ConstantDeclaratorRest { "," ConstantDeclarator }
- *
- * @param reqInit Is an initializer always required?
- * @param dc The documentation comment for the variable declarations, or null.
- */
- <T extends ListBuffer<? super JCVariableDecl>> T variableDeclaratorsRest(int pos,
- JCModifiers mods,
- JCExpression type,
- Name name,
- boolean reqInit,
- String dc,
- T vdefs)
- {
- vdefs.append(variableDeclaratorRest(pos, mods, type, name, reqInit, dc));
- while (S.token() == COMMA) {
- // All but last of multiple declarators subsume a comma
- storeEnd((JCTree)vdefs.elems.last(), S.endPos());
- S.nextToken();
- vdefs.append(variableDeclarator(mods, type, reqInit, dc));
- }
- return vdefs;
- }
-
- /** VariableDeclarator = Ident VariableDeclaratorRest
- * ConstantDeclarator = Ident ConstantDeclaratorRest
- */
- JCVariableDecl variableDeclarator(JCModifiers mods, JCExpression type, boolean reqInit, String dc) {
- return variableDeclaratorRest(S.pos(), mods, type, ident(), reqInit, dc);
- }
-
- /** VariableDeclaratorRest = BracketsOpt ["=" VariableInitializer]
- * ConstantDeclaratorRest = BracketsOpt "=" VariableInitializer
- *
- * @param reqInit Is an initializer always required?
- * @param dc The documentation comment for the variable declarations, or null.
- */
- JCVariableDecl variableDeclaratorRest(int pos, JCModifiers mods, JCExpression type, Name name,
- boolean reqInit, String dc) {
- type = bracketsOpt(type);
- JCExpression init = null;
- if (S.token() == EQ) {
- S.nextToken();
- init = variableInitializer();
- }
- else if (reqInit) syntaxError(S.pos(), "expected", EQ);
- JCVariableDecl result =
- toP(F.at(pos).VarDef(mods, name, type, init));
- attach(result, dc);
- return result;
- }
-
- /** VariableDeclaratorId = Ident BracketsOpt
- */
- JCVariableDecl variableDeclaratorId(JCModifiers mods, JCExpression type) {
- int pos = S.pos();
- Name name = ident();
- if ((mods.flags & Flags.VARARGS) == 0)
- type = bracketsOpt(type);
- return toP(F.at(pos).VarDef(mods, name, type, null));
- }
-
- /** CompilationUnit = [ { "@" Annotation } PACKAGE Qualident ";"] {ImportDeclaration} {TypeDeclaration}
- */
- public JCTree.JCCompilationUnit compilationUnit() {
- int pos = S.pos();
- JCExpression pid = null;
- String dc = S.docComment();
- JCModifiers mods = null;
- List<JCAnnotation> packageAnnotations = List.nil();
- if (S.token() == MONKEYS_AT)
- mods = modifiersOpt();
-
- if (S.token() == PACKAGE) {
- if (mods != null) {
- checkNoMods(mods.flags);
- packageAnnotations = mods.annotations;
- mods = null;
- }
- S.nextToken();
- pid = qualident();
- accept(SEMI);
- }
- ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
- boolean checkForImports = true;
- while (S.token() != EOF) {
- if (S.pos() <= errorEndPos) {
- // error recovery
- skip(checkForImports, false, false, false);
- if (S.token() == EOF)
- break;
- }
- if (checkForImports && mods == null && S.token() == IMPORT) {
- defs.append(importDeclaration());
- } else {
- JCTree def = typeDeclaration(mods);
- if (def instanceof JCExpressionStatement)
- def = ((JCExpressionStatement)def).expr;
- defs.append(def);
- if (def instanceof JCClassDecl)
- checkForImports = false;
- mods = null;
- }
- }
- JCTree.JCCompilationUnit toplevel = F.at(pos).TopLevel(packageAnnotations, pid, defs.toList());
- attach(toplevel, dc);
- if (defs.elems.isEmpty())
- storeEnd(toplevel, S.prevEndPos());
- if (keepDocComments) toplevel.docComments = docComments;
- return toplevel;
- }
-
- /** ImportDeclaration = IMPORT [ STATIC ] Ident { "." Ident } [ "." "*" ] ";"
- */
- JCTree importDeclaration() {
- int pos = S.pos();
- S.nextToken();
- boolean importStatic = false;
- if (S.token() == STATIC) {
- checkStaticImports();
- importStatic = true;
- S.nextToken();
- }
- JCExpression pid = toP(F.at(S.pos()).Ident(ident()));
- do {
- int pos1 = S.pos();
- accept(DOT);
- if (S.token() == STAR) {
- pid = to(F.at(pos1).Select(pid, names.asterisk));
- S.nextToken();
- break;
- } else {
- pid = toP(F.at(pos1).Select(pid, ident()));
- }
- } while (S.token() == DOT);
- accept(SEMI);
- return toP(F.at(pos).Import(pid, importStatic));
- }
-
- /** TypeDeclaration = ClassOrInterfaceOrEnumDeclaration
- * | ";"
- */
- JCTree typeDeclaration(JCModifiers mods) {
- int pos = S.pos();
- if (mods == null && S.token() == SEMI) {
- S.nextToken();
- return toP(F.at(pos).Skip());
- } else {
- String dc = S.docComment();
- return classOrInterfaceOrEnumDeclaration(modifiersOpt(mods), dc);
- }
- }
-
- /** ClassOrInterfaceOrEnumDeclaration = ModifiersOpt
- * (ClassDeclaration | InterfaceDeclaration | EnumDeclaration)
- * @param mods Any modifiers starting the class or interface declaration
- * @param dc The documentation comment for the class, or null.
+ /**
+ * Parse a type.
+ * @return an expression for a type
*/
- JCStatement classOrInterfaceOrEnumDeclaration(JCModifiers mods, String dc) {
- if (S.token() == CLASS) {
- return classDeclaration(mods, dc);
- } else if (S.token() == INTERFACE) {
- return interfaceDeclaration(mods, dc);
- } else if (allowEnums) {
- if (S.token() == ENUM) {
- return enumDeclaration(mods, dc);
- } else {
- int pos = S.pos();
- List<JCTree> errs;
- if (S.token() == IDENTIFIER) {
- errs = List.<JCTree>of(mods, toP(F.at(pos).Ident(ident())));
- setErrorEndPos(S.pos());
- } else {
- errs = List.<JCTree>of(mods);
- }
- return toP(F.Exec(syntaxError(pos, errs, "expected3",
- CLASS, INTERFACE, ENUM)));
- }
- } else {
- if (S.token() == ENUM) {
- log.error(S.pos(), "enums.not.supported.in.source", source.name);
- allowEnums = true;
- return enumDeclaration(mods, dc);
- }
- int pos = S.pos();
- List<JCTree> errs;
- if (S.token() == IDENTIFIER) {
- errs = List.<JCTree>of(mods, toP(F.at(pos).Ident(ident())));
- setErrorEndPos(S.pos());
- } else {
- errs = List.<JCTree>of(mods);
- }
- return toP(F.Exec(syntaxError(pos, errs, "expected2",
- CLASS, INTERFACE)));
- }
- }
-
- /** ClassDeclaration = CLASS Ident TypeParametersOpt [EXTENDS Type]
- * [IMPLEMENTS TypeList] ClassBody
- * @param mods The modifiers starting the class declaration
- * @param dc The documentation comment for the class, or null.
- */
- JCClassDecl classDeclaration(JCModifiers mods, String dc) {
- int pos = S.pos();
- accept(CLASS);
- Name name = ident();
-
- List<JCTypeParameter> typarams = typeParametersOpt();
-
- JCTree extending = null;
- if (S.token() == EXTENDS) {
- S.nextToken();
- extending = type();
- }
- List<JCExpression> implementing = List.nil();
- if (S.token() == IMPLEMENTS) {
- S.nextToken();
- implementing = typeList();
- }
- List<JCTree> defs = classOrInterfaceBody(name, false);
- JCClassDecl result = toP(F.at(pos).ClassDef(
- mods, name, typarams, extending, implementing, defs));
- attach(result, dc);
- return result;
- }
-
- /** InterfaceDeclaration = INTERFACE Ident TypeParametersOpt
- * [EXTENDS TypeList] InterfaceBody
- * @param mods The modifiers starting the interface declaration
- * @param dc The documentation comment for the interface, or null.
- */
- JCClassDecl interfaceDeclaration(JCModifiers mods, String dc) {
- int pos = S.pos();
- accept(INTERFACE);
- Name name = ident();
-
- List<JCTypeParameter> typarams = typeParametersOpt();
-
- List<JCExpression> extending = List.nil();
- if (S.token() == EXTENDS) {
- S.nextToken();
- extending = typeList();
- }
- List<JCTree> defs = classOrInterfaceBody(name, true);
- JCClassDecl result = toP(F.at(pos).ClassDef(
- mods, name, typarams, null, extending, defs));
- attach(result, dc);
- return result;
- }
-
- /** EnumDeclaration = ENUM Ident [IMPLEMENTS TypeList] EnumBody
- * @param mods The modifiers starting the enum declaration
- * @param dc The documentation comment for the enum, or null.
- */
- JCClassDecl enumDeclaration(JCModifiers mods, String dc) {
- int pos = S.pos();
- accept(ENUM);
- Name name = ident();
-
- List<JCExpression> implementing = List.nil();
- if (S.token() == IMPLEMENTS) {
- S.nextToken();
- implementing = typeList();
- }
-
- List<JCTree> defs = enumBody(name);
- JCModifiers newMods =
- F.at(mods.pos).Modifiers(mods.flags|Flags.ENUM, mods.annotations);
- JCClassDecl result = toP(F.at(pos).
- ClassDef(newMods, name, List.<JCTypeParameter>nil(),
- null, implementing, defs));
- attach(result, dc);
- return result;
- }
-
- /** EnumBody = "{" { EnumeratorDeclarationList } [","]
- * [ ";" {ClassBodyDeclaration} ] "}"
- */
- List<JCTree> enumBody(Name enumName) {
- accept(LBRACE);
- ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
- if (S.token() == COMMA) {
- S.nextToken();
- } else if (S.token() != RBRACE && S.token() != SEMI) {
- defs.append(enumeratorDeclaration(enumName));
- while (S.token() == COMMA) {
- S.nextToken();
- if (S.token() == RBRACE || S.token() == SEMI) break;
- defs.append(enumeratorDeclaration(enumName));
- }
- if (S.token() != SEMI && S.token() != RBRACE) {
- defs.append(syntaxError(S.pos(), "expected3",
- COMMA, RBRACE, SEMI));
- S.nextToken();
- }
- }
- if (S.token() == SEMI) {
- S.nextToken();
- while (S.token() != RBRACE && S.token() != EOF) {
- defs.appendList(classOrInterfaceBodyDeclaration(enumName,
- false));
- if (S.pos() <= errorEndPos) {
- // error recovery
- skip(false, true, true, false);
- }
- }
- }
- accept(RBRACE);
- return defs.toList();
- }
-
- /** EnumeratorDeclaration = AnnotationsOpt [TypeArguments] IDENTIFIER [ Arguments ] [ "{" ClassBody "}" ]
- */
- JCTree enumeratorDeclaration(Name enumName) {
- String dc = S.docComment();
- int flags = Flags.PUBLIC|Flags.STATIC|Flags.FINAL|Flags.ENUM;
- if (S.deprecatedFlag()) {
- flags |= Flags.DEPRECATED;
- S.resetDeprecatedFlag();
- }
- int pos = S.pos();
- List<JCAnnotation> annotations = annotationsOpt();
- JCModifiers mods = F.at(annotations.isEmpty() ? Position.NOPOS : pos).Modifiers(flags, annotations);
- List<JCExpression> typeArgs = typeArgumentsOpt();
- int identPos = S.pos();
- Name name = ident();
- int createPos = S.pos();
- List<JCExpression> args = (S.token() == LPAREN)
- ? arguments() : List.<JCExpression>nil();
- JCClassDecl body = null;
- if (S.token() == LBRACE) {
- JCModifiers mods1 = F.at(Position.NOPOS).Modifiers(Flags.ENUM | Flags.STATIC);
- List<JCTree> defs = classOrInterfaceBody(names.empty, false);
- body = toP(F.at(identPos).AnonymousClassDef(mods1, defs));
- }
- if (args.isEmpty() && body == null)
- createPos = Position.NOPOS;
- JCIdent ident = F.at(Position.NOPOS).Ident(enumName);
- JCNewClass create = F.at(createPos).NewClass(null, typeArgs, ident, args, body);
- if (createPos != Position.NOPOS)
- storeEnd(create, S.prevEndPos());
- ident = F.at(Position.NOPOS).Ident(enumName);
- JCTree result = toP(F.at(pos).VarDef(mods, name, ident, create));
- attach(result, dc);
- return result;
- }
-
- /** TypeList = Type {"," Type}
- */
- List<JCExpression> typeList() {
- ListBuffer<JCExpression> ts = new ListBuffer<JCExpression>();
- ts.append(type());
- while (S.token() == COMMA) {
- S.nextToken();
- ts.append(type());
- }
- return ts.toList();
- }
-
- /** ClassBody = "{" {ClassBodyDeclaration} "}"
- * InterfaceBody = "{" {InterfaceBodyDeclaration} "}"
- */
- List<JCTree> classOrInterfaceBody(Name className, boolean isInterface) {
- accept(LBRACE);
- if (S.pos() <= errorEndPos) {
- // error recovery
- skip(false, true, false, false);
- if (S.token() == LBRACE)
- S.nextToken();
- }
- ListBuffer<JCTree> defs = new ListBuffer<JCTree>();
- while (S.token() != RBRACE && S.token() != EOF) {
- defs.appendList(classOrInterfaceBodyDeclaration(className, isInterface));
- if (S.pos() <= errorEndPos) {
- // error recovery
- skip(false, true, true, false);
- }
- }
- accept(RBRACE);
- return defs.toList();
- }
-
- /** ClassBodyDeclaration =
- * ";"
- * | [STATIC] Block
- * | ModifiersOpt
- * ( Type Ident
- * ( VariableDeclaratorsRest ";" | MethodDeclaratorRest )
- * | VOID Ident MethodDeclaratorRest
- * | TypeParameters (Type | VOID) Ident MethodDeclaratorRest
- * | Ident ConstructorDeclaratorRest
- * | TypeParameters Ident ConstructorDeclaratorRest
- * | ClassOrInterfaceOrEnumDeclaration
- * )
- * InterfaceBodyDeclaration =
- * ";"
- * | ModifiersOpt Type Ident
- * ( ConstantDeclaratorsRest | InterfaceMethodDeclaratorRest ";" )
- */
- List<JCTree> classOrInterfaceBodyDeclaration(Name className, boolean isInterface) {
- if (S.token() == SEMI) {
- S.nextToken();
- return List.<JCTree>of(F.at(Position.NOPOS).Block(0, List.<JCStatement>nil()));
- } else {
- String dc = S.docComment();
- int pos = S.pos();
- JCModifiers mods = modifiersOpt();
- if (S.token() == CLASS ||
- S.token() == INTERFACE ||
- allowEnums && S.token() == ENUM) {
- return List.<JCTree>of(classOrInterfaceOrEnumDeclaration(mods, dc));
- } else if (S.token() == LBRACE && !isInterface &&
- (mods.flags & Flags.StandardFlags & ~Flags.STATIC) == 0 &&
- mods.annotations.isEmpty()) {
- return List.<JCTree>of(block(pos, mods.flags));
- } else {
- pos = S.pos();
- List<JCTypeParameter> typarams = typeParametersOpt();
- // Hack alert: if there are type arguments but no Modifiers, the start
- // position will be lost unless we set the Modifiers position. There
- // should be an AST node for type parameters (BugId 5005090).
- if (typarams.length() > 0 && mods.pos == Position.NOPOS) {
- mods.pos = pos;
- }
- Token token = S.token();
- Name name = S.name();
- pos = S.pos();
- JCExpression type;
- boolean isVoid = S.token() == VOID;
- if (isVoid) {
- type = to(F.at(pos).TypeIdent(TypeTags.VOID));
- S.nextToken();
- } else {
- type = type();
- }
- if (S.token() == LPAREN && !isInterface && type.getTag() == JCTree.IDENT) {
- if (isInterface || name != className)
- log.error(pos, "invalid.meth.decl.ret.type.req");
- return List.of(methodDeclaratorRest(
- pos, mods, null, names.init, typarams,
- isInterface, true, dc));
- } else {
- pos = S.pos();
- name = ident();
- if (S.token() == LPAREN) {
- return List.of(methodDeclaratorRest(
- pos, mods, type, name, typarams,
- isInterface, isVoid, dc));
- } else if (!isVoid && typarams.isEmpty()) {
- List<JCTree> defs =
- variableDeclaratorsRest(pos, mods, type, name, isInterface, dc,
- new ListBuffer<JCTree>()).toList();
- storeEnd(defs.last(), S.endPos());
- accept(SEMI);
- return defs;
- } else {
- pos = S.pos();
- List<JCTree> err = isVoid
- ? List.<JCTree>of(toP(F.at(pos).MethodDef(mods, name, type, typarams,
- List.<JCVariableDecl>nil(), List.<JCExpression>nil(), null, null)))
- : null;
- return List.<JCTree>of(syntaxError(S.pos(), err, "expected", LPAREN));
- }
- }
- }
- }
- }
-
- /** MethodDeclaratorRest =
- * FormalParameters BracketsOpt [Throws TypeList] ( MethodBody | [DEFAULT AnnotationValue] ";")
- * VoidMethodDeclaratorRest =
- * FormalParameters [Throws TypeList] ( MethodBody | ";")
- * InterfaceMethodDeclaratorRest =
- * FormalParameters BracketsOpt [THROWS TypeList] ";"
- * VoidInterfaceMethodDeclaratorRest =
- * FormalParameters [THROWS TypeList] ";"
- * ConstructorDeclaratorRest =
- * "(" FormalParameterListOpt ")" [THROWS TypeList] MethodBody
- */
- JCTree methodDeclaratorRest(int pos,
- JCModifiers mods,
- JCExpression type,
- Name name,
- List<JCTypeParameter> typarams,
- boolean isInterface, boolean isVoid,
- String dc) {
- List<JCVariableDecl> params = formalParameters();
- if (!isVoid) type = bracketsOpt(type);
- List<JCExpression> thrown = List.nil();
- if (S.token() == THROWS) {
- S.nextToken();
- thrown = qualidentList();
- }
- JCBlock body = null;
- JCExpression defaultValue;
- if (S.token() == LBRACE) {
- body = block();
- defaultValue = null;
- } else {
- if (S.token() == DEFAULT) {
- accept(DEFAULT);
- defaultValue = annotationValue();
- } else {
- defaultValue = null;
- }
- accept(SEMI);
- if (S.pos() <= errorEndPos) {
- // error recovery
- skip(false, true, false, false);
- if (S.token() == LBRACE) {
- body = block();
- }
- }
- }
- JCMethodDecl result =
- toP(F.at(pos).MethodDef(mods, name, type, typarams,
- params, thrown,
- body, defaultValue));
- attach(result, dc);
- return result;
- }
-
- /** QualidentList = Qualident {"," Qualident}
- */
- List<JCExpression> qualidentList() {
- ListBuffer<JCExpression> ts = new ListBuffer<JCExpression>();
- ts.append(qualident());
- while (S.token() == COMMA) {
- S.nextToken();
- ts.append(qualident());
- }
- return ts.toList();
- }
-
- /** TypeParametersOpt = ["<" TypeParameter {"," TypeParameter} ">"]
- */
- List<JCTypeParameter> typeParametersOpt() {
- if (S.token() == LT) {
- checkGenerics();
- ListBuffer<JCTypeParameter> typarams = new ListBuffer<JCTypeParameter>();
- S.nextToken();
- typarams.append(typeParameter());
- while (S.token() == COMMA) {
- S.nextToken();
- typarams.append(typeParameter());
- }
- accept(GT);
- return typarams.toList();
- } else {
- return List.nil();
- }
- }
-
- /** TypeParameter = TypeVariable [TypeParameterBound]
- * TypeParameterBound = EXTENDS Type {"&" Type}
- * TypeVariable = Ident
- */
- JCTypeParameter typeParameter() {
- int pos = S.pos();
- Name name = ident();
- ListBuffer<JCExpression> bounds = new ListBuffer<JCExpression>();
- if (S.token() == EXTENDS) {
- S.nextToken();
- bounds.append(type());
- while (S.token() == AMP) {
- S.nextToken();
- bounds.append(type());
- }
- }
- return toP(F.at(pos).TypeParameter(name, bounds.toList()));
- }
-
- /** FormalParameters = "(" [ FormalParameterList ] ")"
- * FormalParameterList = [ FormalParameterListNovarargs , ] LastFormalParameter
- * FormalParameterListNovarargs = [ FormalParameterListNovarargs , ] FormalParameter
- */
- List<JCVariableDecl> formalParameters() {
- ListBuffer<JCVariableDecl> params = new ListBuffer<JCVariableDecl>();
- JCVariableDecl lastParam = null;
- accept(LPAREN);
- if (S.token() != RPAREN) {
- params.append(lastParam = formalParameter());
- while ((lastParam.mods.flags & Flags.VARARGS) == 0 && S.token() == COMMA) {
- S.nextToken();
- params.append(lastParam = formalParameter());
- }
- }
- accept(RPAREN);
- return params.toList();
- }
-
- JCModifiers optFinal(long flags) {
- JCModifiers mods = modifiersOpt();
- checkNoMods(mods.flags & ~(Flags.FINAL | Flags.DEPRECATED));
- mods.flags |= flags;
- return mods;
- }
-
- /** FormalParameter = { FINAL | '@' Annotation } Type VariableDeclaratorId
- * LastFormalParameter = { FINAL | '@' Annotation } Type '...' Ident | FormalParameter
- */
- JCVariableDecl formalParameter() {
- JCModifiers mods = optFinal(Flags.PARAMETER);
- JCExpression type = type();
- if (S.token() == ELLIPSIS) {
- checkVarargs();
- mods.flags |= Flags.VARARGS;
- type = to(F.at(S.pos()).TypeArray(type));
- S.nextToken();
- }
- return variableDeclaratorId(mods, type);
- }
-
-/* ---------- auxiliary methods -------------- */
-
- /** Check that given tree is a legal expression statement.
- */
- protected JCExpression checkExprStat(JCExpression t) {
- switch(t.getTag()) {
- case JCTree.PREINC: case JCTree.PREDEC:
- case JCTree.POSTINC: case JCTree.POSTDEC:
- case JCTree.ASSIGN:
- case JCTree.BITOR_ASG: case JCTree.BITXOR_ASG: case JCTree.BITAND_ASG:
- case JCTree.SL_ASG: case JCTree.SR_ASG: case JCTree.USR_ASG:
- case JCTree.PLUS_ASG: case JCTree.MINUS_ASG:
- case JCTree.MUL_ASG: case JCTree.DIV_ASG: case JCTree.MOD_ASG:
- case JCTree.APPLY: case JCTree.NEWCLASS:
- case JCTree.ERRONEOUS:
- return t;
- default:
- log.error(t.pos, "not.stmt");
- return F.at(t.pos).Erroneous(List.<JCTree>of(t));
- }
- }
-
- /** Return precedence of operator represented by token,
- * -1 if token is not a binary operator. @see TreeInfo.opPrec
- */
- static int prec(Token token) {
- int oc = optag(token);
- return (oc >= 0) ? TreeInfo.opPrec(oc) : -1;
- }
-
- /** Return operation tag of binary operator represented by token,
- * -1 if token is not a binary operator.
- */
- static int optag(Token token) {
- switch (token) {
- case BARBAR:
- return JCTree.OR;
- case AMPAMP:
- return JCTree.AND;
- case BAR:
- return JCTree.BITOR;
- case BAREQ:
- return JCTree.BITOR_ASG;
- case CARET:
- return JCTree.BITXOR;
- case CARETEQ:
- return JCTree.BITXOR_ASG;
- case AMP:
- return JCTree.BITAND;
- case AMPEQ:
- return JCTree.BITAND_ASG;
- case EQEQ:
- return JCTree.EQ;
- case BANGEQ:
- return JCTree.NE;
- case LT:
- return JCTree.LT;
- case GT:
- return JCTree.GT;
- case LTEQ:
- return JCTree.LE;
- case GTEQ:
- return JCTree.GE;
- case LTLT:
- return JCTree.SL;
- case LTLTEQ:
- return JCTree.SL_ASG;
- case GTGT:
- return JCTree.SR;
- case GTGTEQ:
- return JCTree.SR_ASG;
- case GTGTGT:
- return JCTree.USR;
- case GTGTGTEQ:
- return JCTree.USR_ASG;
- case PLUS:
- return JCTree.PLUS;
- case PLUSEQ:
- return JCTree.PLUS_ASG;
- case SUB:
- return JCTree.MINUS;
- case SUBEQ:
- return JCTree.MINUS_ASG;
- case STAR:
- return JCTree.MUL;
- case STAREQ:
- return JCTree.MUL_ASG;
- case SLASH:
- return JCTree.DIV;
- case SLASHEQ:
- return JCTree.DIV_ASG;
- case PERCENT:
- return JCTree.MOD;
- case PERCENTEQ:
- return JCTree.MOD_ASG;
- case INSTANCEOF:
- return JCTree.TYPETEST;
- default:
- return -1;
- }
- }
-
- /** Return operation tag of unary operator represented by token,
- * -1 if token is not a binary operator.
- */
- static int unoptag(Token token) {
- switch (token) {
- case PLUS:
- return JCTree.POS;
- case SUB:
- return JCTree.NEG;
- case BANG:
- return JCTree.NOT;
- case TILDE:
- return JCTree.COMPL;
- case PLUSPLUS:
- return JCTree.PREINC;
- case SUBSUB:
- return JCTree.PREDEC;
- default:
- return -1;
- }
- }
-
- /** Return type tag of basic type represented by token,
- * -1 if token is not a basic type identifier.
- */
- static int typetag(Token token) {
- switch (token) {
- case BYTE:
- return TypeTags.BYTE;
- case CHAR:
- return TypeTags.CHAR;
- case SHORT:
- return TypeTags.SHORT;
- case INT:
- return TypeTags.INT;
- case LONG:
- return TypeTags.LONG;
- case FLOAT:
- return TypeTags.FLOAT;
- case DOUBLE:
- return TypeTags.DOUBLE;
- case BOOLEAN:
- return TypeTags.BOOLEAN;
- default:
- return -1;
- }
- }
-
- void checkGenerics() {
- if (!allowGenerics) {
- log.error(S.pos(), "generics.not.supported.in.source", source.name);
- allowGenerics = true;
- }
- }
- void checkVarargs() {
- if (!allowVarargs) {
- log.error(S.pos(), "varargs.not.supported.in.source", source.name);
- allowVarargs = true;
- }
- }
- void checkForeach() {
- if (!allowForeach) {
- log.error(S.pos(), "foreach.not.supported.in.source", source.name);
- allowForeach = true;
- }
- }
- void checkStaticImports() {
- if (!allowStaticImport) {
- log.error(S.pos(), "static.import.not.supported.in.source", source.name);
- allowStaticImport = true;
- }
- }
- void checkAnnotations() {
- if (!allowAnnotations) {
- log.error(S.pos(), "annotations.not.supported.in.source", source.name);
- allowAnnotations = true;
- }
- }
+ JCExpression parseType();
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/ParserFactory.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,79 @@
+/*
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.javac.parser;
+
+import com.sun.tools.javac.code.Source;
+import com.sun.tools.javac.tree.TreeMaker;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.Log;
+import com.sun.tools.javac.util.Names;
+import com.sun.tools.javac.util.Options;
+
+/**
+ * A factory for creating parsers.
+ */
+public class ParserFactory {
+
+ /** The context key for the parser factory. */
+ protected static final Context.Key<ParserFactory> parserFactoryKey = new Context.Key<ParserFactory>();
+
+ public static ParserFactory instance(Context context) {
+ ParserFactory instance = context.get(parserFactoryKey);
+ if (instance == null) {
+ instance = new ParserFactory(context);
+ }
+ return instance;
+ }
+
+ final TreeMaker F;
+ final Log log;
+ final Keywords keywords;
+ final Source source;
+ final Names names;
+ final Options options;
+ final Scanner.Factory scannerFactory;
+
+ protected ParserFactory(Context context) {
+ super();
+ context.put(parserFactoryKey, this);
+ this.F = TreeMaker.instance(context);
+ this.log = Log.instance(context);
+ this.names = Names.instance(context);
+ this.keywords = Keywords.instance(context);
+ this.source = Source.instance(context);
+ this.options = Options.instance(context);
+ this.scannerFactory = Scanner.Factory.instance(context);
+ }
+
+ public Parser newParser(CharSequence input, boolean keepDocComments, boolean keepEndPos, boolean keepLineMap) {
+ Lexer lexer = scannerFactory.newScanner(input);
+ if (keepEndPos) {
+ return new EndPosParser(this, lexer, keepDocComments, keepLineMap);
+ } else {
+ return new JavacParser(this, lexer, keepDocComments, keepLineMap);
+ }
+ }
+}
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java Sat Oct 04 22:48:54 2008 -0700
@@ -62,7 +62,7 @@
}
final Log log;
- final Name.Table names;
+ final Names names;
final Source source;
final Keywords keywords;
@@ -70,7 +70,7 @@
protected Factory(Context context) {
context.put(scannerFactoryKey, this);
this.log = Log.instance(context);
- this.names = Name.Table.instance(context);
+ this.names = Names.instance(context);
this.source = Source.instance(context);
this.keywords = Keywords.instance(context);
}
@@ -155,7 +155,7 @@
private final Log log;
/** The name table. */
- private final Name.Table names;
+ private final Names names;
/** The keyword table. */
private final Keywords keywords;
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Token.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Token.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Sat Oct 04 22:48:54 2008 -0700
@@ -70,6 +70,7 @@
import com.sun.tools.javac.util.ListBuffer;
import com.sun.tools.javac.util.Log;
import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
import com.sun.tools.javac.util.Options;
import static javax.tools.StandardLocation.*;
@@ -831,7 +832,7 @@
topLevelClasses = List.nil();
packageInfoFiles = List.nil();
- compiler.close();
+ compiler.close(false);
currentContext = contextForNextRound(currentContext, true);
JavaFileManager fileManager = currentContext.get(JavaFileManager.class);
@@ -879,7 +880,7 @@
}
runLastRound(xout, roundNumber, errorStatus, taskListener);
- compiler.close();
+ compiler.close(false);
currentContext = contextForNextRound(currentContext, true);
compiler = JavaCompiler.instance(currentContext);
filer.newRound(currentContext, true);
@@ -913,7 +914,7 @@
} else if (procOnly) {
compiler.todo.clear();
} else { // Final compilation
- compiler.close();
+ compiler.close(false);
currentContext = contextForNextRound(currentContext, true);
compiler = JavaCompiler.instance(currentContext);
@@ -987,7 +988,7 @@
private ListBuffer<ClassSymbol> enterNewClassFiles(Context currentContext) {
ClassReader reader = ClassReader.instance(currentContext);
- Name.Table names = Name.Table.instance(currentContext);
+ Names names = Names.instance(currentContext);
ListBuffer<ClassSymbol> list = new ListBuffer<ClassSymbol>();
for (Map.Entry<String,JavaFileObject> entry : filer.getGeneratedClasses().entrySet()) {
@@ -1047,9 +1048,9 @@
next.put(Log.outKey, out);
if (shareNames) {
- Name.Table names = Name.Table.instance(context);
+ Names names = Names.instance(context);
assert names != null;
- next.put(Name.Table.namesKey, names);
+ next.put(Names.namesKey, names);
}
DiagnosticListener dl = context.get(DiagnosticListener.class);
@@ -1067,9 +1068,9 @@
((JavacFileManager)jfm).setContext(next);
}
- Name.Table names = Name.Table.instance(context);
+ Names names = Names.instance(context);
assert names != null;
- next.put(Name.Table.namesKey, names);
+ next.put(Names.namesKey, names);
Keywords keywords = Keywords.instance(context);
assert(keywords != null);
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/ServiceProxy.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/ServiceProxy.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -336,7 +336,7 @@
if (l.head.getTag() == JCTree.IMPORT) {
JCImport imp = (JCImport)l.head;
Name name = TreeInfo.name(imp.qualid);
- if (name == name.table.asterisk ||
+ if (name == name.table.names.asterisk ||
cdef == null ||
isUsed(TreeInfo.symbol(imp.qualid), cdef)) {
if (firstImport) {
@@ -439,14 +439,14 @@
public void visitMethodDef(JCMethodDecl tree) {
try {
// when producing source output, omit anonymous constructors
- if (tree.name == tree.name.table.init &&
+ if (tree.name == tree.name.table.names.init &&
enclClassName == null &&
sourceOutput) return;
println(); align();
printDocComment(tree);
printExpr(tree.mods);
printTypeParameters(tree.typarams);
- if (tree.name == tree.name.table.init) {
+ if (tree.name == tree.name.table.names.init) {
print(enclClassName != null ? enclClassName : tree.name);
} else {
printExpr(tree.restype);
@@ -835,8 +835,8 @@
Name enclClassNamePrev = enclClassName;
enclClassName =
tree.def.name != null ? tree.def.name :
- tree.type != null && tree.type.tsym.name != tree.type.tsym.name.table.empty ? tree.type.tsym.name :
- null;
+ tree.type != null && tree.type.tsym.name != tree.type.tsym.name.table.names.empty
+ ? tree.type.tsym.name : null;
if ((tree.def.mods.flags & Flags.ENUM) != 0) print("/*enum*/");
printBlock(tree.def.defs);
enclClassName = enclClassNamePrev;
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@
private TreeInfo(Context context) {
context.put(treeInfoKey, this);
- Name.Table names = Name.Table.instance(context);
+ Names names = Names.instance(context);
opname[JCTree.POS - JCTree.POS] = names.fromString("+");
opname[JCTree.NEG - JCTree.POS] = names.hyphen;
opname[JCTree.NOT - JCTree.POS] = names.fromString("!");
@@ -104,7 +104,7 @@
public static boolean isConstructor(JCTree tree) {
if (tree.getTag() == JCTree.METHODDEF) {
Name name = ((JCMethodDecl) tree).name;
- return name == name.table.init;
+ return name == name.table.names.init;
} else {
return false;
}
@@ -130,7 +130,7 @@
if (select.sym != null &&
(select.sym.flags() & SYNTHETIC) != 0) {
Name selected = name(select.selected);
- if (selected != null && selected == selected.table._this)
+ if (selected != null && selected == selected.table.names._this)
return true;
}
}
@@ -157,7 +157,7 @@
public static boolean isSelfCall(JCTree tree) {
Name name = calledMethodName(tree);
if (name != null) {
- Name.Table names = name.table;
+ Names names = name.table.names;
return name==names._this || name==names._super;
} else {
return false;
@@ -169,7 +169,7 @@
public static boolean isSuperCall(JCTree tree) {
Name name = calledMethodName(tree);
if (name != null) {
- Name.Table names = name.table;
+ Names names = name.table.names;
return name==names._super;
} else {
return false;
@@ -183,14 +183,14 @@
JCMethodInvocation app = firstConstructorCall(tree);
if (app == null) return false;
Name meth = name(app.meth);
- return meth == null || meth != meth.table._this;
+ return meth == null || meth != meth.table.names._this;
}
/** Return the first call in a constructor definition. */
public static JCMethodInvocation firstConstructorCall(JCTree tree) {
if (tree.getTag() != JCTree.METHODDEF) return null;
JCMethodDecl md = (JCMethodDecl) tree;
- Name.Table names = md.name.table;
+ Names names = md.name.table.names;
if (md.name != names.init) return null;
if (md.body == null) return null;
List<JCStatement> stats = md.body.stats;
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
public JCCompilationUnit toplevel;
/** The current name table. */
- Name.Table names;
+ Names names;
Types types;
@@ -80,14 +80,14 @@
context.put(treeMakerKey, this);
this.pos = Position.NOPOS;
this.toplevel = null;
- this.names = Name.Table.instance(context);
+ this.names = Names.instance(context);
this.syms = Symtab.instance(context);
this.types = Types.instance(context);
}
/** Create a tree maker with a given toplevel and FIRSTPOS as initial position.
*/
- TreeMaker(JCCompilationUnit toplevel, Name.Table names, Types types, Symtab syms) {
+ TreeMaker(JCCompilationUnit toplevel, Names names, Types types, Symtab syms) {
this.pos = Position.FIRSTPOS;
this.toplevel = toplevel;
this.names = names;
--- a/langtools/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -150,7 +150,7 @@
/** Append a name.
*/
public void appendName(Name name) {
- appendBytes(name.table.names, name.index, name.len);
+ appendBytes(name.getByteArray(), name.getByteOffset(), name.getByteLength());
}
/** Reset to zero length.
@@ -161,7 +161,7 @@
/** Convert contents to name.
*/
- public Name toName(Name.Table names) {
+ public Name toName(Names names) {
return names.fromUtf(elems, 0, length);
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Context.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Context.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Convert.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Convert.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -289,7 +289,7 @@
*/
public static Name shortName(Name classname) {
return classname.subName(
- classname.lastIndexOf((byte)'.') + 1, classname.len);
+ classname.lastIndexOf((byte)'.') + 1, classname.getByteLength());
}
public static String shortName(String classname) {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/ListBuffer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/ListBuffer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Name.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Name.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,246 +25,111 @@
package com.sun.tools.javac.util;
-import java.lang.ref.SoftReference;
-
-
-/** An abstraction for internal compiler strings. For efficiency reasons,
- * GJC uses hashed strings that are stored in a common large buffer.
- *
- * <p>Names represent unique hashable strings. Two names are equal
- * if their indices are equal. Utf8 representation is used
- * for storing names internally.
+/** An abstraction for internal compiler strings. They are stored in
+ * Utf8 format. Names are stored in a Name.Table, and are unique within
+ * that table.
*
* <p><b>This is NOT part of any API supported by Sun Microsystems. If
* you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
-public class Name implements javax.lang.model.element.Name {
-
- /** The table structure where the name is stored
- */
- public Table table;
-
- /** The index where the bytes of this name are stored in the global name
- * buffer `names'.
- */
- public int index;
-
- /** The number of bytes in this name.
- */
- public int len;
-
- /** The next name occupying the same hash bucket.
- */
- Name next;
-
- /** The hashcode of a name.
- */
- private static int hashValue(byte cs[], int start, int len) {
- int h = 0;
- int off = start;
-
- for (int i = 0; i < len; i++) {
- h = (h << 5) - h + cs[off++];
- }
- return h;
- }
+public abstract class Name implements javax.lang.model.element.Name {
- /** Is (the utf8 representation of) name equal to
- * cs[start..start+len-1]?
- */
- private static boolean equals(byte[] names, int index,
- byte cs[], int start, int len) {
- int i = 0;
- while (i < len && names[index + i] == cs[start + i]) i++;
- return i == len;
- }
+ public final Table table;
- /** Create a name from the bytes in cs[start..start+len-1].
- * Assume that bytes are in utf8 format.
- */
- public static Name fromUtf(Table table, byte cs[], int start, int len) {
- int h = hashValue(cs, start, len) & table.hashMask;
- Name n = table.hashes[h];
- byte[] names = table.names;
- while (n != null &&
- (n.len != len || !equals(names, n.index, cs, start, len)))
- n = n.next;
- if (n == null) {
- int nc = table.nc;
- while (nc + len > names.length) {
-// System.err.println("doubling name buffer of length + " + names.length + " to fit " + len + " bytes");//DEBUG
- byte[] newnames = new byte[names.length * 2];
- System.arraycopy(names, 0, newnames, 0, names.length);
- names = table.names = newnames;
- }
- System.arraycopy(cs, start, names, nc, len);
- n = new Name();
- n.table = table;
- n.index = nc;
- n.len = len;
- n.next = table.hashes[h];
- table.hashes[h] = n;
- table.nc = nc + len;
- if (len == 0) table.nc++;
- }
- return n;
- }
-
- /** Create a name from the bytes in array cs.
- * Assume that bytes are in utf8 format.
- */
- public static Name fromUtf(Table table, byte cs[]) {
- return fromUtf(table, cs, 0, cs.length);
+ protected Name(Table table) {
+ this.table = table;
}
- /** Create a name from the characters in cs[start..start+len-1].
+ /**
+ * @inheritDoc
*/
- public static Name fromChars(Table table, char[] cs, int start, int len) {
- int nc = table.nc;
- byte[] names = table.names;
- while (nc + len * 3 >= names.length) {
-// System.err.println("doubling name buffer of length " + names.length + " to fit " + len + " chars");//DEBUG
- byte[] newnames = new byte[names.length * 2];
- System.arraycopy(names, 0, newnames, 0, names.length);
- names = table.names = newnames;
- }
- int nbytes =
- Convert.chars2utf(cs, start, names, nc, len) - nc;
- int h = hashValue(names, nc, nbytes) & table.hashMask;
- Name n = table.hashes[h];
- while (n != null &&
- (n.len != nbytes ||
- !equals(names, n.index, names, nc, nbytes)))
- n = n.next;
- if (n == null) {
- n = new Name();
- n.table = table;
- n.index = nc;
- n.len = nbytes;
- n.next = table.hashes[h];
- table.hashes[h] = n;
- table.nc = nc + nbytes;
- if (nbytes == 0) table.nc++;
- }
- return n;
- }
-
- /** Create a name from the characters in string s.
- */
- public static Name fromString(Table table, String s) {
- char[] cs = s.toCharArray();
- return fromChars(table, cs, 0, cs.length);
- }
-
- /** Create a name from the characters in char sequence s.
- */
- public static Name fromString(Table table, CharSequence s) {
- return fromString(table, s.toString());
+ public boolean contentEquals(CharSequence cs) {
+ return toString().equals(cs.toString());
}
- /** Return the Utf8 representation of this name.
- */
- public byte[] toUtf() {
- byte[] bs = new byte[len];
- System.arraycopy(table.names, index, bs, 0, len);
- return bs;
- }
-
- /** Return the string representation of this name.
- */
- public String toString() {
- return Convert.utf2string(table.names, index, len);
- }
-
- /** Copy all bytes of this name to buffer cs, starting at start.
- */
- public void getBytes(byte cs[], int start) {
- System.arraycopy(table.names, index, cs, start, len);
- }
-
- /** Return the hash value of this name.
- */
- public int hashCode() {
- return index;
- }
-
- /** Is this name equal to other?
- */
- public boolean equals(Object other) {
- if (other instanceof Name)
- return
- table == ((Name)other).table && index == ((Name)other).index;
- else return false;
- }
-
- /** Compare this name to other name, yielding -1 if smaller, 0 if equal,
- * 1 if greater.
- */
- public boolean less(Name that) {
- int i = 0;
- while (i < this.len && i < that.len) {
- byte thisb = this.table.names[this.index + i];
- byte thatb = that.table.names[that.index + i];
- if (thisb < thatb) return true;
- else if (thisb > thatb) return false;
- else i++;
- }
- return this.len < that.len;
- }
-
- /** Returns the length of this name.
+ /**
+ * @inheritDoc
*/
public int length() {
return toString().length();
}
- /** Returns i'th byte of this name.
+ /**
+ * @inheritDoc
*/
- public byte byteAt(int i) {
- return table.names[index + i];
+ public char charAt(int index) {
+ return toString().charAt(index);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public CharSequence subSequence(int start, int end) {
+ return toString().subSequence(start, end);
}
- /** Returns first occurrence of byte b in this name, len if not found.
+ /** Return the concatenation of this name and name `n'.
+ */
+ public Name append(Name n) {
+ int len = getByteLength();
+ byte[] bs = new byte[len + n.getByteLength()];
+ getBytes(bs, 0);
+ n.getBytes(bs, len);
+ return table.fromUtf(bs, 0, bs.length);
+ }
+
+ /** Return the concatenation of this name, the given ASCII
+ * character, and name `n'.
*/
- public int indexOf(byte b) {
- byte[] names = table.names;
- int i = 0;
- while (i < len && names[index + i] != b) i++;
- return i;
+ public Name append(char c, Name n) {
+ int len = getByteLength();
+ byte[] bs = new byte[len + 1 + n.getByteLength()];
+ getBytes(bs, 0);
+ bs[len] = (byte) c;
+ n.getBytes(bs, len+1);
+ return table.fromUtf(bs, 0, bs.length);
+ }
+
+ /** An arbitrary but consistent complete order among all Names.
+ */
+ public int compareTo(Name other) {
+ return other.getIndex() - this.getIndex();
+ }
+
+ /** Return true if this is the empty name.
+ */
+ public boolean isEmpty() {
+ return getByteLength() == 0;
}
/** Returns last occurrence of byte b in this name, -1 if not found.
*/
public int lastIndexOf(byte b) {
- byte[] names = table.names;
- int i = len - 1;
- while (i >= 0 && names[index + i] != b) i--;
+ byte[] bytes = getByteArray();
+ int offset = getByteOffset();
+ int i = getByteLength() - 1;
+ while (i >= 0 && bytes[offset + i] != b) i--;
return i;
}
/** Does this name start with prefix?
*/
public boolean startsWith(Name prefix) {
- int i = 0;
- while (i < prefix.len &&
- i < len &&
- table.names[index + i] == prefix.table.names[prefix.index + i])
- i++;
- return i == prefix.len;
- }
+ byte[] thisBytes = this.getByteArray();
+ int thisOffset = this.getByteOffset();
+ int thisLength = this.getByteLength();
+ byte[] prefixBytes = prefix.getByteArray();
+ int prefixOffset = prefix.getByteOffset();
+ int prefixLength = prefix.getByteLength();
- /** Does this name end with suffix?
- */
- public boolean endsWith(Name suffix) {
- int i = len - 1;
- int j = suffix.len - 1;
- while (j >= 0 && i >= 0 &&
- table.names[index + i] == suffix.table.names[suffix.index + j]) {
- i--; j--;
- }
- return j < 0;
+ int i = 0;
+ while (i < prefixLength &&
+ i < thisLength &&
+ thisBytes[thisOffset + i] == prefixBytes[prefixOffset + i])
+ i++;
+ return i == prefixLength;
}
/** Returns the sub-name starting at position start, up to and
@@ -272,382 +137,110 @@
*/
public Name subName(int start, int end) {
if (end < start) end = start;
- return fromUtf(table, table.names, index + start, end - start);
+ return table.fromUtf(getByteArray(), getByteOffset() + start, end - start);
}
- /** Replace all `from' bytes in this name with `to' bytes.
+ /** Return the string representation of this name.
*/
- public Name replace(byte from, byte to) {
- byte[] names = table.names;
- int i = 0;
- while (i < len) {
- if (names[index + i] == from) {
- byte[] bs = new byte[len];
- System.arraycopy(names, index, bs, 0, i);
- bs[i] = to;
- i++;
- while (i < len) {
- byte b = names[index + i];
- bs[i] = b == from ? to : b;
- i++;
- }
- return fromUtf(table, bs, 0, len);
- }
- i++;
- }
- return this;
+ public String toString() {
+ return Convert.utf2string(getByteArray(), getByteOffset(), getByteLength());
}
- /** Return the concatenation of this name and name `n'.
- */
- public Name append(Name n) {
- byte[] bs = new byte[len + n.len];
- getBytes(bs, 0);
- n.getBytes(bs, len);
- return fromUtf(table, bs, 0, bs.length);
- }
-
- /** Return the concatenation of this name, the given ASCII
- * character, and name `n'.
+ /** Return the Utf8 representation of this name.
*/
- public Name append(char c, Name n) {
- byte[] bs = new byte[len + n.len + 1];
+ public byte[] toUtf() {
+ byte[] bs = new byte[getByteLength()];
getBytes(bs, 0);
- bs[len] = (byte)c;
- n.getBytes(bs, len+1);
- return fromUtf(table, bs, 0, bs.length);
- }
-
- /** An arbitrary but consistent complete order among all Names.
- */
- public int compareTo(Name other) {
- return other.index - this.index;
+ return bs;
}
- /** Return the concatenation of all names in the array `ns'.
+ /* Get a "reasonably small" value that uniquely identifies this name
+ * within its name table.
+ */
+ public abstract int getIndex();
+
+ /** Get the length (in bytes) of this name.
*/
- public static Name concat(Table table, Name ns[]) {
- int len = 0;
- for (int i = 0; i < ns.length; i++)
- len = len + ns[i].len;
- byte[] bs = new byte[len];
- len = 0;
- for (int i = 0; i < ns.length; i++) {
- ns[i].getBytes(bs, len);
- len = len + ns[i].len;
- }
- return fromUtf(table, bs, 0, len);
- }
+ public abstract int getByteLength();
- public char charAt(int index) {
- return toString().charAt(index);
- }
+ /** Returns i'th byte of this name.
+ */
+ public abstract byte getByteAt(int i);
- public CharSequence subSequence(int start, int end) {
- return toString().subSequence(start, end);
- }
-
- public boolean contentEquals(CharSequence cs) {
- return this.toString().equals(cs.toString());
+ /** Copy all bytes of this name to buffer cs, starting at start.
+ */
+ public void getBytes(byte cs[], int start) {
+ System.arraycopy(getByteArray(), getByteOffset(), cs, start, getByteLength());
}
- public static class Table {
- // maintain a freelist of recently used name tables for reuse.
- private static List<SoftReference<Table>> freelist = List.nil();
+ /** Get the underlying byte array for this name. The contents of the
+ * array must not be modified.
+ */
+ public abstract byte[] getByteArray();
- static private synchronized Table make() {
- while (freelist.nonEmpty()) {
- Table t = freelist.head.get();
- freelist = freelist.tail;
- if (t != null) return t;
- }
- return new Table();
- }
+ /** Get the start offset of this name within its byte array.
+ */
+ public abstract int getByteOffset();
- static private synchronized void dispose(Table t) {
- freelist = freelist.prepend(new SoftReference<Table>(t));
- }
-
- public void dispose() {
- dispose(this);
- }
+ /** An abstraction for the hash table used to create unique Name instances.
+ */
+ public static abstract class Table {
+ /** Standard name table.
+ */
+ public final Names names;
- public static final Context.Key<Table> namesKey =
- new Context.Key<Table>();
-
- public static Table instance(Context context) {
- Table instance = context.get(namesKey);
- if (instance == null) {
- instance = make();
- context.put(namesKey, instance);
- }
- return instance;
+ Table(Names names) {
+ this.names = names;
}
- /** The hash table for names.
- */
- private Name[] hashes;
-
- /** The array holding all encountered names.
- */
- public byte[] names;
-
- /** The mask to be used for hashing
- */
- private int hashMask;
-
- /** The number of filled bytes in `names'.
- */
- private int nc = 0;
-
- /** Allocator
- * @param hashSize the (constant) size to be used for the hash table
- * needs to be a power of two.
- * @param nameSize the initial size of the name table.
+ /** Get the name from the characters in cs[start..start+len-1].
*/
- public Table(int hashSize, int nameSize) {
- hashMask = hashSize - 1;
- hashes = new Name[hashSize];
- names = new byte[nameSize];
-
- slash = fromString("/");
- hyphen = fromString("-");
- T = fromString("T");
- slashequals = fromString("/=");
- deprecated = fromString("deprecated");
-
- init = fromString("<init>");
- clinit = fromString("<clinit>");
- error = fromString("<error>");
- any = fromString("<any>");
- empty = fromString("");
- one = fromString("1");
- period = fromString(".");
- comma = fromString(",");
- semicolon = fromString(";");
- asterisk = fromString("*");
- _this = fromString("this");
- _super = fromString("super");
- _default = fromString("default");
+ public abstract Name fromChars(char[] cs, int start, int len);
- _class = fromString("class");
- java_lang = fromString("java.lang");
- java_lang_Object = fromString("java.lang.Object");
- java_lang_Class = fromString("java.lang.Class");
- java_lang_Cloneable = fromString("java.lang.Cloneable");
- java_io_Serializable = fromString("java.io.Serializable");
- java_lang_Enum = fromString("java.lang.Enum");
- package_info = fromString("package-info");
- serialVersionUID = fromString("serialVersionUID");
- ConstantValue = fromString("ConstantValue");
- LineNumberTable = fromString("LineNumberTable");
- LocalVariableTable = fromString("LocalVariableTable");
- LocalVariableTypeTable = fromString("LocalVariableTypeTable");
- CharacterRangeTable = fromString("CharacterRangeTable");
- StackMap = fromString("StackMap");
- StackMapTable = fromString("StackMapTable");
- SourceID = fromString("SourceID");
- CompilationID = fromString("CompilationID");
- Code = fromString("Code");
- Exceptions = fromString("Exceptions");
- SourceFile = fromString("SourceFile");
- InnerClasses = fromString("InnerClasses");
- Synthetic = fromString("Synthetic");
- Bridge= fromString("Bridge");
- Deprecated = fromString("Deprecated");
- Enum = fromString("Enum");
- _name = fromString("name");
- Signature = fromString("Signature");
- Varargs = fromString("Varargs");
- Annotation = fromString("Annotation");
- RuntimeVisibleAnnotations = fromString("RuntimeVisibleAnnotations");
- RuntimeInvisibleAnnotations = fromString("RuntimeInvisibleAnnotations");
- RuntimeVisibleParameterAnnotations = fromString("RuntimeVisibleParameterAnnotations");
- RuntimeInvisibleParameterAnnotations = fromString("RuntimeInvisibleParameterAnnotations");
- Value = fromString("Value");
- EnclosingMethod = fromString("EnclosingMethod");
-
- desiredAssertionStatus = fromString("desiredAssertionStatus");
-
- append = fromString("append");
- family = fromString("family");
- forName = fromString("forName");
- toString = fromString("toString");
- length = fromString("length");
- valueOf = fromString("valueOf");
- value = fromString("value");
- getMessage = fromString("getMessage");
- getClass = fromString("getClass");
-
- TYPE = fromString("TYPE");
- FIELD = fromString("FIELD");
- METHOD = fromString("METHOD");
- PARAMETER = fromString("PARAMETER");
- CONSTRUCTOR = fromString("CONSTRUCTOR");
- LOCAL_VARIABLE = fromString("LOCAL_VARIABLE");
- ANNOTATION_TYPE = fromString("ANNOTATION_TYPE");
- PACKAGE = fromString("PACKAGE");
-
- SOURCE = fromString("SOURCE");
- CLASS = fromString("CLASS");
- RUNTIME = fromString("RUNTIME");
-
- Array = fromString("Array");
- Method = fromString("Method");
- Bound = fromString("Bound");
- clone = fromString("clone");
- getComponentType = fromString("getComponentType");
- getClassLoader = fromString("getClassLoader");
- initCause = fromString("initCause");
- values = fromString("values");
- iterator = fromString("iterator");
- hasNext = fromString("hasNext");
- next = fromString("next");
- AnnotationDefault = fromString("AnnotationDefault");
- ordinal = fromString("ordinal");
- equals = fromString("equals");
- hashCode = fromString("hashCode");
- compareTo = fromString("compareTo");
- getDeclaringClass = fromString("getDeclaringClass");
- ex = fromString("ex");
- finalize = fromString("finalize");
+ /** Get the name for the characters in string s.
+ */
+ public Name fromString(String s) {
+ char[] cs = s.toCharArray();
+ return fromChars(cs, 0, cs.length);
}
- public Table() {
- this(0x8000, 0x20000);
+ /** Get the name for the bytes in array cs.
+ * Assume that bytes are in utf8 format.
+ */
+ public Name fromUtf(byte[] cs) {
+ return fromUtf(cs, 0, cs.length);
}
- /** Create a name from the bytes in cs[start..start+len-1].
- * Assume that bytes are in utf8 format.
- */
- public Name fromUtf(byte cs[], int start, int len) {
- return Name.fromUtf(this, cs, start, len);
- }
-
- /** Create a name from the bytes in array cs.
+ /** get the name for the bytes in cs[start..start+len-1].
* Assume that bytes are in utf8 format.
*/
- public Name fromUtf(byte cs[]) {
- return Name.fromUtf(this, cs, 0, cs.length);
- }
+ public abstract Name fromUtf(byte[] cs, int start, int len);
- /** Create a name from the characters in cs[start..start+len-1].
+ /** Release any resources used by this table.
+ */
+ public abstract void dispose();
+
+ /** The hashcode of a name.
*/
- public Name fromChars(char[] cs, int start, int len) {
- return Name.fromChars(this, cs, start, len);
- }
+ protected static int hashValue(byte bytes[], int offset, int length) {
+ int h = 0;
+ int off = offset;
- /** Create a name from the characters in string s.
- */
- public Name fromString(CharSequence s) {
- return Name.fromString(this, s);
+ for (int i = 0; i < length; i++) {
+ h = (h << 5) - h + bytes[off++];
+ }
+ return h;
}
- public final Name slash;
- public final Name hyphen;
- public final Name T;
- public final Name slashequals;
- public final Name deprecated;
-
- public final Name init;
- public final Name clinit;
- public final Name error;
- public final Name any;
- public final Name empty;
- public final Name one;
- public final Name period;
- public final Name comma;
- public final Name semicolon;
- public final Name asterisk;
- public final Name _this;
- public final Name _super;
- public final Name _default;
-
- public final Name _class;
- public final Name java_lang;
- public final Name java_lang_Object;
- public final Name java_lang_Class;
- public final Name java_lang_Cloneable;
- public final Name java_io_Serializable;
- public final Name serialVersionUID;
- public final Name java_lang_Enum;
- public final Name package_info;
- public final Name ConstantValue;
- public final Name LineNumberTable;
- public final Name LocalVariableTable;
- public final Name LocalVariableTypeTable;
- public final Name CharacterRangeTable;
- public final Name StackMap;
- public final Name StackMapTable;
- public final Name SourceID;
- public final Name CompilationID;
- public final Name Code;
- public final Name Exceptions;
- public final Name SourceFile;
- public final Name InnerClasses;
- public final Name Synthetic;
- public final Name Bridge;
- public final Name Deprecated;
- public final Name Enum;
- public final Name _name;
- public final Name Signature;
- public final Name Varargs;
- public final Name Annotation;
- public final Name RuntimeVisibleAnnotations;
- public final Name RuntimeInvisibleAnnotations;
- public final Name RuntimeVisibleParameterAnnotations;
- public final Name RuntimeInvisibleParameterAnnotations;
-
- public final Name Value;
- public final Name EnclosingMethod;
-
- public final Name desiredAssertionStatus;
-
- public final Name append;
- public final Name family;
- public final Name forName;
- public final Name toString;
- public final Name length;
- public final Name valueOf;
- public final Name value;
- public final Name getMessage;
- public final Name getClass;
-
- public final Name TYPE;
- public final Name FIELD;
- public final Name METHOD;
- public final Name PARAMETER;
- public final Name CONSTRUCTOR;
- public final Name LOCAL_VARIABLE;
- public final Name ANNOTATION_TYPE;
- public final Name PACKAGE;
-
- public final Name SOURCE;
- public final Name CLASS;
- public final Name RUNTIME;
-
- public final Name Array;
- public final Name Method;
- public final Name Bound;
- public final Name clone;
- public final Name getComponentType;
- public final Name getClassLoader;
- public final Name initCause;
- public final Name values;
- public final Name iterator;
- public final Name hasNext;
- public final Name next;
- public final Name AnnotationDefault;
- public final Name ordinal;
- public final Name equals;
- public final Name hashCode;
- public final Name compareTo;
- public final Name getDeclaringClass;
- public final Name ex;
- public final Name finalize;
- }
-
- public boolean isEmpty() {
- return len == 0;
+ /** Compare two subarrays
+ */
+ protected static boolean equals(byte[] bytes1, int offset1,
+ byte[] bytes2, int offset2, int length) {
+ int i = 0;
+ while (i < length && bytes1[offset1 + i] == bytes2[offset2 + i]) {
+ i++;
+ }
+ return i == length;
+ }
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Names.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,281 @@
+/*
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.javac.util;
+
+/**
+ * Access to the compiler's name table. STandard names are defined,
+ * as well as methods to create new names.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems. If
+ * you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class Names {
+
+ public static final Context.Key<Names> namesKey = new Context.Key<Names>();
+
+ public static Names instance(Context context) {
+ Names instance = context.get(namesKey);
+ if (instance == null) {
+ instance = new Names(context);
+ context.put(namesKey, instance);
+ }
+ return instance;
+ }
+
+ public final Name slash;
+ public final Name hyphen;
+ public final Name T;
+ public final Name slashequals;
+ public final Name deprecated;
+ public final Name init;
+ public final Name clinit;
+ public final Name error;
+ public final Name any;
+ public final Name empty;
+ public final Name one;
+ public final Name period;
+ public final Name comma;
+ public final Name semicolon;
+ public final Name asterisk;
+ public final Name _this;
+ public final Name _super;
+ public final Name _default;
+ public final Name _class;
+ public final Name java_lang;
+ public final Name java_lang_Object;
+ public final Name java_lang_Class;
+ public final Name java_lang_Cloneable;
+ public final Name java_io_Serializable;
+ public final Name serialVersionUID;
+ public final Name java_lang_Enum;
+ public final Name package_info;
+ public final Name ConstantValue;
+ public final Name LineNumberTable;
+ public final Name LocalVariableTable;
+ public final Name LocalVariableTypeTable;
+ public final Name CharacterRangeTable;
+ public final Name StackMap;
+ public final Name StackMapTable;
+ public final Name SourceID;
+ public final Name CompilationID;
+ public final Name Code;
+ public final Name Exceptions;
+ public final Name SourceFile;
+ public final Name InnerClasses;
+ public final Name Synthetic;
+ public final Name Bridge;
+ public final Name Deprecated;
+ public final Name Enum;
+ public final Name _name;
+ public final Name Signature;
+ public final Name Varargs;
+ public final Name Annotation;
+ public final Name RuntimeVisibleAnnotations;
+ public final Name RuntimeInvisibleAnnotations;
+ public final Name RuntimeVisibleParameterAnnotations;
+ public final Name RuntimeInvisibleParameterAnnotations;
+ public final Name Value;
+ public final Name EnclosingMethod;
+ public final Name desiredAssertionStatus;
+ public final Name append;
+ public final Name family;
+ public final Name forName;
+ public final Name toString;
+ public final Name length;
+ public final Name valueOf;
+ public final Name value;
+ public final Name getMessage;
+ public final Name getClass;
+ public final Name TYPE;
+ public final Name FIELD;
+ public final Name METHOD;
+ public final Name PARAMETER;
+ public final Name CONSTRUCTOR;
+ public final Name LOCAL_VARIABLE;
+ public final Name ANNOTATION_TYPE;
+ public final Name PACKAGE;
+ public final Name SOURCE;
+ public final Name CLASS;
+ public final Name RUNTIME;
+ public final Name Array;
+ public final Name Method;
+ public final Name Bound;
+ public final Name clone;
+ public final Name getComponentType;
+ public final Name getClassLoader;
+ public final Name initCause;
+ public final Name values;
+ public final Name iterator;
+ public final Name hasNext;
+ public final Name next;
+ public final Name AnnotationDefault;
+ public final Name ordinal;
+ public final Name equals;
+ public final Name hashCode;
+ public final Name compareTo;
+ public final Name getDeclaringClass;
+ public final Name ex;
+ public final Name finalize;
+
+ public final Name.Table table;
+
+ public Names(Context context) {
+ Options options = Options.instance(context);
+ table = createTable(options);
+
+ slash = fromString("/");
+ hyphen = fromString("-");
+ T = fromString("T");
+ slashequals = fromString("/=");
+ deprecated = fromString("deprecated");
+
+ init = fromString("<init>");
+ clinit = fromString("<clinit>");
+ error = fromString("<error>");
+ any = fromString("<any>");
+ empty = fromString("");
+ one = fromString("1");
+ period = fromString(".");
+ comma = fromString(",");
+ semicolon = fromString(";");
+ asterisk = fromString("*");
+ _this = fromString("this");
+ _super = fromString("super");
+ _default = fromString("default");
+
+ _class = fromString("class");
+ java_lang = fromString("java.lang");
+ java_lang_Object = fromString("java.lang.Object");
+ java_lang_Class = fromString("java.lang.Class");
+ java_lang_Cloneable = fromString("java.lang.Cloneable");
+ java_io_Serializable = fromString("java.io.Serializable");
+ java_lang_Enum = fromString("java.lang.Enum");
+ package_info = fromString("package-info");
+ serialVersionUID = fromString("serialVersionUID");
+ ConstantValue = fromString("ConstantValue");
+ LineNumberTable = fromString("LineNumberTable");
+ LocalVariableTable = fromString("LocalVariableTable");
+ LocalVariableTypeTable = fromString("LocalVariableTypeTable");
+ CharacterRangeTable = fromString("CharacterRangeTable");
+ StackMap = fromString("StackMap");
+ StackMapTable = fromString("StackMapTable");
+ SourceID = fromString("SourceID");
+ CompilationID = fromString("CompilationID");
+ Code = fromString("Code");
+ Exceptions = fromString("Exceptions");
+ SourceFile = fromString("SourceFile");
+ InnerClasses = fromString("InnerClasses");
+ Synthetic = fromString("Synthetic");
+ Bridge = fromString("Bridge");
+ Deprecated = fromString("Deprecated");
+ Enum = fromString("Enum");
+ _name = fromString("name");
+ Signature = fromString("Signature");
+ Varargs = fromString("Varargs");
+ Annotation = fromString("Annotation");
+ RuntimeVisibleAnnotations = fromString("RuntimeVisibleAnnotations");
+ RuntimeInvisibleAnnotations = fromString("RuntimeInvisibleAnnotations");
+ RuntimeVisibleParameterAnnotations = fromString("RuntimeVisibleParameterAnnotations");
+ RuntimeInvisibleParameterAnnotations = fromString("RuntimeInvisibleParameterAnnotations");
+ Value = fromString("Value");
+ EnclosingMethod = fromString("EnclosingMethod");
+
+ desiredAssertionStatus = fromString("desiredAssertionStatus");
+
+ append = fromString("append");
+ family = fromString("family");
+ forName = fromString("forName");
+ toString = fromString("toString");
+ length = fromString("length");
+ valueOf = fromString("valueOf");
+ value = fromString("value");
+ getMessage = fromString("getMessage");
+ getClass = fromString("getClass");
+
+ TYPE = fromString("TYPE");
+ FIELD = fromString("FIELD");
+ METHOD = fromString("METHOD");
+ PARAMETER = fromString("PARAMETER");
+ CONSTRUCTOR = fromString("CONSTRUCTOR");
+ LOCAL_VARIABLE = fromString("LOCAL_VARIABLE");
+ ANNOTATION_TYPE = fromString("ANNOTATION_TYPE");
+ PACKAGE = fromString("PACKAGE");
+
+ SOURCE = fromString("SOURCE");
+ CLASS = fromString("CLASS");
+ RUNTIME = fromString("RUNTIME");
+
+ Array = fromString("Array");
+ Method = fromString("Method");
+ Bound = fromString("Bound");
+ clone = fromString("clone");
+ getComponentType = fromString("getComponentType");
+ getClassLoader = fromString("getClassLoader");
+ initCause = fromString("initCause");
+ values = fromString("values");
+ iterator = fromString("iterator");
+ hasNext = fromString("hasNext");
+ next = fromString("next");
+ AnnotationDefault = fromString("AnnotationDefault");
+ ordinal = fromString("ordinal");
+ equals = fromString("equals");
+ hashCode = fromString("hashCode");
+ compareTo = fromString("compareTo");
+ getDeclaringClass = fromString("getDeclaringClass");
+ ex = fromString("ex");
+ finalize = fromString("finalize");
+ }
+
+ protected Name.Table createTable(Options options) {
+ boolean useUnsharedTable = options.get("useUnsharedTable") != null;
+ if (useUnsharedTable)
+ return new UnsharedNameTable(this);
+ else
+ return new SharedNameTable(this);
+ }
+
+ public void dispose() {
+ table.dispose();
+ }
+
+ public Name fromChars(char[] cs, int start, int len) {
+ return table.fromChars(cs, start, len);
+ }
+
+ public Name fromString(String s) {
+ return table.fromString(s);
+ }
+
+ public Name fromUtf(byte[] cs) {
+ return table.fromUtf(cs);
+ }
+
+ public Name fromUtf(byte[] cs, int start, int len) {
+ return table.fromUtf(cs, start, len);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/SharedNameTable.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,221 @@
+/*
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.javac.util;
+
+import java.lang.ref.SoftReference;
+
+/**
+ * Implementation of Name.Table that stores all names in a single shared
+ * byte array, expanding it as needed. This avoids the overhead incurred
+ * by using an array of bytes for each name.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems. If
+ * you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class SharedNameTable extends Name.Table {
+ // maintain a freelist of recently used name tables for reuse.
+ private static List<SoftReference<SharedNameTable>> freelist = List.nil();
+
+ static public synchronized SharedNameTable create(Names names) {
+ while (freelist.nonEmpty()) {
+ SharedNameTable t = freelist.head.get();
+ freelist = freelist.tail;
+ if (t != null) {
+ return t;
+ }
+ }
+ return new SharedNameTable(names);
+ }
+
+ static private synchronized void dispose(SharedNameTable t) {
+ freelist = freelist.prepend(new SoftReference<SharedNameTable>(t));
+ }
+
+ /** The hash table for names.
+ */
+ private NameImpl[] hashes;
+
+ /** The shared byte array holding all encountered names.
+ */
+ public byte[] bytes;
+
+ /** The mask to be used for hashing
+ */
+ private int hashMask;
+
+ /** The number of filled bytes in `names'.
+ */
+ private int nc = 0;
+
+ /** Allocator
+ * @param names The main name table
+ * @param hashSize the (constant) size to be used for the hash table
+ * needs to be a power of two.
+ * @param nameSize the initial size of the name table.
+ */
+ public SharedNameTable(Names names, int hashSize, int nameSize) {
+ super(names);
+ hashMask = hashSize - 1;
+ hashes = new NameImpl[hashSize];
+ bytes = new byte[nameSize];
+
+ }
+
+ public SharedNameTable(Names names) {
+ this(names, 0x8000, 0x20000);
+ }
+
+ @Override
+ public Name fromChars(char[] cs, int start, int len) {
+ int nc = this.nc;
+ byte[] bytes = this.bytes;
+ while (nc + len * 3 >= bytes.length) {
+ // System.err.println("doubling name buffer of length " + names.length + " to fit " + len + " chars");//DEBUG
+ byte[] newnames = new byte[bytes.length * 2];
+ System.arraycopy(bytes, 0, newnames, 0, bytes.length);
+ bytes = this.bytes = newnames;
+ }
+ int nbytes = Convert.chars2utf(cs, start, bytes, nc, len) - nc;
+ int h = hashValue(bytes, nc, nbytes) & hashMask;
+ NameImpl n = hashes[h];
+ while (n != null &&
+ (n.getByteLength() != nbytes ||
+ !equals(bytes, n.index, bytes, nc, nbytes))) {
+ n = n.next;
+ }
+ if (n == null) {
+ n = new NameImpl(this);
+ n.index = nc;
+ n.length = nbytes;
+ n.next = hashes[h];
+ hashes[h] = n;
+ this.nc = nc + nbytes;
+ if (nbytes == 0) {
+ this.nc++;
+ }
+ }
+ return n;
+ }
+
+ @Override
+ public Name fromUtf(byte[] cs, int start, int len) {
+ int h = hashValue(cs, start, len) & hashMask;
+ NameImpl n = hashes[h];
+ byte[] names = this.bytes;
+ while (n != null &&
+ (n.getByteLength() != len || !equals(names, n.index, cs, start, len))) {
+ n = n.next;
+ }
+ if (n == null) {
+ int nc = this.nc;
+ while (nc + len > names.length) {
+ // System.err.println("doubling name buffer of length + " + names.length + " to fit " + len + " bytes");//DEBUG
+ byte[] newnames = new byte[names.length * 2];
+ System.arraycopy(names, 0, newnames, 0, names.length);
+ names = this.bytes = newnames;
+ }
+ System.arraycopy(cs, start, names, nc, len);
+ n = new NameImpl(this);
+ n.index = nc;
+ n.length = len;
+ n.next = hashes[h];
+ hashes[h] = n;
+ this.nc = nc + len;
+ if (len == 0) {
+ this.nc++;
+ }
+ }
+ return n;
+ }
+
+ @Override
+ public void dispose() {
+ dispose(this);
+ }
+
+ static class NameImpl extends Name {
+ /** The next name occupying the same hash bucket.
+ */
+ NameImpl next;
+
+ /** The index where the bytes of this name are stored in the global name
+ * buffer `byte'.
+ */
+ int index;
+
+ /** The number of bytes in this name.
+ */
+ int length;
+
+ NameImpl(SharedNameTable table) {
+ super(table);
+ }
+
+ @Override
+ public int getIndex() {
+ return index;
+ }
+
+ @Override
+ public int getByteLength() {
+ return length;
+ }
+
+ @Override
+ public byte getByteAt(int i) {
+ return getByteArray()[index + i];
+ }
+
+ @Override
+ public byte[] getByteArray() {
+ return ((SharedNameTable) table).bytes;
+ }
+
+ @Override
+ public int getByteOffset() {
+ return index;
+ }
+
+ /** Return the hash value of this name.
+ */
+ public int hashCode() {
+ return index;
+ }
+
+ /** Is this name equal to other?
+ */
+ public boolean equals(Object other) {
+ if (other instanceof Name)
+ return
+ table == ((Name)other).table && index == ((Name) other).getIndex();
+ else return false;
+ }
+
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,185 @@
+/*
+ * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.javac.util;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * Implementation of Name.Table that stores names in individual arrays
+ * using weak references. It is recommended for use when a single shared
+ * byte array is unsuitable.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems. If
+ * you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class UnsharedNameTable extends Name.Table {
+ static public Name.Table create(Names names) {
+ return new UnsharedNameTable(names);
+ }
+
+ static class HashEntry extends WeakReference<NameImpl> {
+ HashEntry next;
+ HashEntry(NameImpl referent) {
+ super(referent);
+ }
+ }
+
+ /** The hash table for names.
+ */
+ private HashEntry[] hashes = null;
+
+ /** The mask to be used for hashing
+ */
+ private int hashMask;
+
+ /** Index counter for names in this table.
+ */
+ public int index;
+
+ /** Allocator
+ * @param names The main name table
+ * @param hashSize the (constant) size to be used for the hash table
+ * needs to be a power of two.
+ */
+ public UnsharedNameTable(Names names, int hashSize) {
+ super(names);
+ hashMask = hashSize - 1;
+ hashes = new HashEntry[hashSize];
+ }
+
+ public UnsharedNameTable(Names names) {
+ this(names, 0x8000);
+ }
+
+
+ @Override
+ public Name fromChars(char[] cs, int start, int len) {
+ byte[] name = new byte[len * 3];
+ int nbytes = Convert.chars2utf(cs, start, name, 0, len);
+ return fromUtf(name, 0, nbytes);
+ }
+
+ @Override
+ public Name fromUtf(byte[] cs, int start, int len) {
+ int h = hashValue(cs, start, len) & hashMask;
+
+ HashEntry element = hashes[h];
+
+ NameImpl n = null;
+
+ HashEntry previousNonNullTableEntry = null;
+ HashEntry firstTableEntry = element;
+
+ while (element != null) {
+ if (element == null) {
+ break;
+ }
+
+ n = element.get();
+
+ if (n == null) {
+ if (firstTableEntry == element) {
+ hashes[h] = firstTableEntry = element.next;
+ }
+ else {
+ assert previousNonNullTableEntry != null : "previousNonNullTableEntry cannot be null here.";
+ previousNonNullTableEntry.next = element.next;
+ }
+ }
+ else {
+ if (n.getByteLength() == len && equals(n.bytes, 0, cs, start, len)) {
+ return n;
+ }
+ previousNonNullTableEntry = element;
+ }
+
+ element = element.next;
+ }
+
+ byte[] bytes = new byte[len];
+ System.arraycopy(cs, start, bytes, 0, len);
+ n = new NameImpl(this, bytes, index++);
+
+ System.arraycopy(cs, start, n.bytes, 0, len);
+
+ HashEntry newEntry = new HashEntry(n);
+
+ if (previousNonNullTableEntry == null) { // We are not the first name with that hashCode.
+ hashes[h] = newEntry;
+ }
+ else {
+ assert previousNonNullTableEntry.next == null : "previousNonNullTableEntry.next must be null.";
+ previousNonNullTableEntry.next = newEntry;
+ }
+
+ return n;
+ }
+
+ @Override
+ public void dispose() {
+ hashes = null;
+ }
+
+ static class NameImpl extends Name {
+ NameImpl(UnsharedNameTable table, byte[] bytes, int index) {
+ super(table);
+ this.bytes = bytes;
+ this.index = index;
+ }
+
+ final byte[] bytes;
+ final int index;
+
+ @Override
+ public int getIndex() {
+ return index;
+ }
+
+ @Override
+ public int getByteLength() {
+ return bytes.length;
+ }
+
+ @Override
+ public byte getByteAt(int i) {
+ return bytes[i];
+ }
+
+ @Override
+ public byte[] getByteArray() {
+ return bytes;
+ }
+
+ @Override
+ public int getByteOffset() {
+ return 0;
+ }
+
+ }
+
+}
--- a/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,17 +27,13 @@
import com.sun.javadoc.*;
-import static com.sun.javadoc.LanguageVersion.*;
-import com.sun.tools.javac.code.Flags;
import com.sun.tools.javac.code.Kinds;
import com.sun.tools.javac.code.Scope;
-import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.util.List;
-import com.sun.tools.javac.util.ListBuffer;
-import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
import com.sun.tools.javac.util.Position;
/**
@@ -93,7 +89,7 @@
* Elements are always public, so no need to filter them.
*/
public AnnotationTypeElementDoc[] elements() {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
List<AnnotationTypeElementDoc> elements = List.nil();
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
if (e.sym != null && e.sym.kind == Kinds.MTH) {
--- a/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
package com.sun.tools.javadoc;
-import java.util.*;
-
import com.sun.javadoc.*;
import static com.sun.javadoc.LanguageVersion.*;
@@ -40,7 +38,6 @@
import com.sun.tools.javac.code.Kinds;
import com.sun.tools.javac.code.TypeTags;
import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Types;
import com.sun.tools.javac.code.Type.ClassType;
import com.sun.tools.javac.code.Scope;
import com.sun.tools.javac.code.Symbol;
@@ -55,9 +52,9 @@
import com.sun.tools.javac.tree.JCTree.JCClassDecl;
import com.sun.tools.javac.tree.TreeInfo;
+import com.sun.tools.javac.util.Names;
import static com.sun.tools.javac.code.Flags.*;
import static com.sun.tools.javac.code.Kinds.*;
-import static com.sun.tools.javac.code.TypeTags.*;
import java.io.File;
import java.util.Set;
@@ -549,7 +546,7 @@
* methods in this class. Does not include constructors.
*/
public MethodDoc[] methods(boolean filter) {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
List<MethodDocImpl> methods = List.nil();
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
if (e.sym != null &&
@@ -582,7 +579,7 @@
* constructors in this class.
*/
public ConstructorDoc[] constructors(boolean filter) {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
List<ConstructorDocImpl> constructors = List.nil();
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
if (e.sym != null &&
@@ -696,7 +693,7 @@
}
private ClassDoc searchClass(String className) {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
// search by qualified name first
ClassDoc cd = env.lookupClass(className);
@@ -848,7 +845,7 @@
*---------------------------------*/
// search current class
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
Scope.Entry e = tsym.members().lookup(names.fromString(methodName));
//### Using modifier filter here isn't really correct,
@@ -936,7 +933,7 @@
*/
public ConstructorDoc findConstructor(String constrName,
String[] paramTypes) {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
for (Scope.Entry e = tsym.members().lookup(names.fromString("<init>")); e.scope != null; e = e.next()) {
if (e.sym.kind == Kinds.MTH) {
if (hasParameterTypes((MethodSymbol)e.sym, paramTypes)) {
@@ -973,7 +970,7 @@
}
private FieldDocImpl searchField(String fieldName, Set<ClassDocImpl> searched) {
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
if (searched.contains(this)) {
return null;
}
@@ -1040,7 +1037,7 @@
Env<AttrContext> compenv = env.enter.getEnv(tsym);
if (compenv == null) return new ClassDocImpl[0];
- Name asterisk = tsym.name.table.asterisk;
+ Name asterisk = tsym.name.table.names.asterisk;
for (JCTree t : compenv.toplevel.defs) {
if (t.getTag() == JCTree.IMPORT) {
JCTree imp = ((JCImport) t).qualid;
@@ -1076,7 +1073,7 @@
ListBuffer<PackageDocImpl> importedPackages = new ListBuffer<PackageDocImpl>();
//### Add the implicit "import java.lang.*" to the result
- Name.Table names = tsym.name.table;
+ Names names = tsym.name.table.names;
importedPackages.append(env.getPackageDoc(env.reader.enterPackage(names.java_lang)));
Env<AttrContext> compenv = env.enter.getEnv(tsym);
--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,13 +33,11 @@
import com.sun.tools.javac.code.*;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.ClassType;
-import com.sun.tools.javac.code.Type.TypeVar;
import com.sun.tools.javac.comp.Attr;
import com.sun.tools.javac.comp.Check;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.List;
-import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
import com.sun.tools.javac.util.Position;
@@ -83,7 +81,7 @@
JavadocEnter enter;
/** The name table. */
- Name.Table names;
+ Names names;
/** The encoding name. */
private String encoding;
@@ -131,7 +129,7 @@
reader = JavadocClassReader.instance0(context);
enter = JavadocEnter.instance0(context);
attr = Attr.instance(context);
- names = Name.Table.instance(context);
+ names = Names.instance(context);
externalizableSym = reader.enterClass(names.fromString("java.io.Externalizable"));
chk = Check.instance(context);
types = Types.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,7 +82,6 @@
cpString = appendPath(System.getProperty("java.class.path"), cpString);
cpString = appendPath(docletPath, cpString);
URL[] urls = pathToURLs(cpString);
- System.err.println("DocletInvoker urls=" + urls);
appClassLoader = new URLClassLoader(urls);
// attempt to find doclet
--- a/langtools/src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/com/sun/tools/javadoc/SerializedForm.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/SerializedForm.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
import com.sun.tools.javac.code.Symbol.MethodSymbol;
import com.sun.tools.javac.util.Name;
import com.sun.tools.javac.util.ListBuffer;
+import com.sun.tools.javac.util.Names;
/**
* The serialized form is the specification of a class' serialization
@@ -149,7 +150,7 @@
* name SERIALIZABLE_FIELDS.
*/
private VarSymbol getDefinedSerializableFields(ClassSymbol def) {
- Name.Table names = def.name.table;
+ Names names = def.name.table.names;
/* SERIALIZABLE_FIELDS can be private,
* so must lookup by ClassSymbol, not by ClassDocImpl.
@@ -202,7 +203,7 @@
* @param visibility the visibility flag for the given method.
*/
private void addMethodIfExist(DocEnv env, ClassSymbol def, String methodName) {
- Name.Table names = def.name.table;
+ Names names = def.name.table.names;
for (Scope.Entry e = def.members().lookup(names.fromString(methodName)); e.scope != null; e = e.next()) {
if (e.sym.kind == Kinds.MTH) {
@@ -228,7 +229,7 @@
private void mapSerialFieldTagImplsToFieldDocImpls(FieldDocImpl spfDoc,
DocEnv env,
ClassSymbol def) {
- Name.Table names = def.name.table;
+ Names names = def.name.table.names;
SerialFieldTag[] sfTag = spfDoc.serialFieldTags();
for (int i = 0; i < sfTag.length; i++) {
--- a/langtools/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
import com.sun.tools.javac.code.Type.TypeVar;
import com.sun.tools.javac.util.List;
import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Names;
/**
* Implementation of <code>TypeVariable</code>, which
@@ -66,7 +67,7 @@
if ((osym.kind & Kinds.TYP) != 0) {
return env.getClassDoc((ClassSymbol)osym);
}
- Name.Table names = osym.name.table;
+ Names names = osym.name.table.names;
if (osym.name == names.init) {
return env.getConstructorDoc((MethodSymbol)osym);
} else {
@@ -113,7 +114,7 @@
*/
private static List<Type> getBounds(TypeVar v, DocEnv env) {
Name boundname = v.getUpperBound().tsym.getQualifiedName();
- if (boundname == boundname.table.java_lang_Object) {
+ if (boundname == boundname.table.names.java_lang_Object) {
return List.nil();
} else {
return env.types.getBounds(v);
--- a/langtools/src/share/classes/com/sun/tools/javah/Gen.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javah/Gen.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/src/share/classes/javax/lang/model/type/ErrorType.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/javax/lang/model/type/ErrorType.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,6 @@
package javax.lang.model.type;
-
-import javax.lang.model.element.TypeElement;
-
-
/**
* Represents a class or interface type that cannot be properly modeled.
* This may be the result of a processing error,
--- a/langtools/src/share/classes/javax/tools/StandardLocation.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/src/share/classes/javax/tools/StandardLocation.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/Makefile Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/Makefile Sat Oct 04 22:48:54 2008 -0700
@@ -105,7 +105,6 @@
-w:$(TEST_OUTPUT_DIR)/JTwork \
-jdk:$(TESTJAVA) \
-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
- -exclude:bootclasspath-exclude.jtx \
$(JAVA_TOOL_OPTIONS:%=-vmoption:%) \
$(JAVA_ARGS:%=-vmoption:%) \
$(TESTDIRS)
--- a/langtools/test/bootclasspath-exclude.jtx Mon Sep 29 22:10:00 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-# When you run the tests using a recent build of JDK and -Xbootclasspath/p:JAR
-# some tests may fail. Specifically, javac has a test which verifies the content
-# of the version string by comparing it against a value that is derived from
-# the JRE version string. This file can be given to jtreg to exclude such tests.
-# It should *NOT* be used in full SQE runs.
-
-tools/javac/versionOpt.sh
--- a/langtools/test/tools/javac/5045412/Bar.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/5045412/Bar.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/5045412/Foo.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/5045412/Foo.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/6199662/Tree.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/6199662/Tree.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/6304921/TestLog.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/6304921/TestLog.java Sat Oct 04 22:48:54 2008 -0700
@@ -34,6 +34,7 @@
import javax.tools.SimpleJavaFileObject;
import com.sun.tools.javac.file.JavacFileManager;
import com.sun.tools.javac.parser.Parser;
+import com.sun.tools.javac.parser.ParserFactory;
import com.sun.tools.javac.parser.Scanner;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.TreeScanner;
@@ -60,7 +61,7 @@
JavacFileManager.preRegister(context);
Scanner.Factory sfac = Scanner.Factory.instance(context);
- Parser.Factory pfac = Parser.Factory.instance(context);
+ ParserFactory pfac = ParserFactory.instance(context);
final String text =
"public class Foo {\n"
@@ -74,9 +75,9 @@
JavaFileObject fo = new StringJavaFileObject("Foo", text);
log.useSource(fo);
- Scanner s = sfac.newScanner(fo.getCharContent(true));
- Parser parser = pfac.newParser(s, false, genEndPos);
- JCTree.JCCompilationUnit tree = parser.compilationUnit();
+ CharSequence cs = fo.getCharContent(true);
+ Parser parser = pfac.newParser(cs, false, genEndPos, false);
+ JCTree.JCCompilationUnit tree = parser.parseCompilationUnit();
log.setEndPosTable(fo, tree.endPositions);
TreeScanner ts = new LogTester(log, tree.endPositions);
--- a/langtools/test/tools/javac/6627362/T6627362.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/6627362/T6627362.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/6627362/x/E.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/6627362/x/E.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/6627362/x/Object.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/6627362/x/Object.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/VersionOpt.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,104 @@
+
+/*
+ * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6728697
+ * @summary tools/javac/versionOpt.sh fails on OpenJDK builds
+ * Test checks the version strings displayed by javac, using
+ * strings that come out of the Java runtime.
+ */
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URL;
+
+public class VersionOpt {
+ public static void main(String... args) throws Exception {
+ new VersionOpt().run();
+ }
+
+ void run() throws Exception {
+ // Test functions by comparing the version string from javac against
+ // a "golden" version generated automatically from the underlying JVM.
+ // As such, it is only effective in testing the "standard" compiler,
+ // and not any development version being tested via -Xbootclasspath.
+ // Check the version of the compiler being used, and let the test pass
+ // automatically if is is a development version.
+ Class<?> javacClass = com.sun.tools.javac.Main.class;
+ URL javacURL = getClass().getClassLoader().getResource(javacClass.getName().replace(".", "/") + ".class");
+ if (!javacURL.getProtocol().equals("jar") || !javacURL.getFile().contains("!")) {
+ System.err.println("javac not found in tools.jar: " + javacURL);
+ System.err.println("rest of test skipped");
+ return;
+ }
+ String javacHome = javacURL.getFile().substring(0, javacURL.getFile().indexOf("!"));
+
+ File javaHome = new File(System.getProperty("java.home"));
+ if (javaHome.getName().equals("jre"))
+ javaHome = javaHome.getParentFile();
+ File toolsJar = new File(new File(javaHome, "lib"), "tools.jar");
+
+ if (!javacHome.equals(toolsJar.toURI().toString())){
+ System.err.println("javac not found in tools.jar: " + javacHome);
+ System.err.println("rest of test skipped");
+ return;
+ }
+
+ System.out.println("javac found in " + toolsJar);
+
+ String javaVersion = System.getProperty("java.version");
+ String javaRuntimeVersion = System.getProperty("java.runtime.version");
+ System.out.println("java.version: " + javaVersion);
+ System.out.println("java.runtime.version: " + javaRuntimeVersion);
+
+ StringWriter sw = new StringWriter();
+ com.sun.tools.javac.Main.compile(new String[] { "-version" }, new PrintWriter(sw));
+ String javacVersion = sw.toString().trim();
+
+ sw = new StringWriter();
+ com.sun.tools.javac.Main.compile(new String[] { "-fullversion" }, new PrintWriter(sw));
+ String javacFullVersion = sw.toString().trim();
+ System.out.println("javac -version: " + javacVersion);
+ System.out.println("javac -fullversion: " + javacFullVersion);
+
+ checkEqual("javac -version", javacVersion, "javac " + javaVersion);
+ checkEqual("javac -fullversion", javacFullVersion, "javac full version \"" + javaRuntimeVersion + "\"");
+
+ if (errors > 0)
+ throw new Exception(errors + " errors found");
+ }
+
+ void checkEqual(String kind, String found, String expect) {
+ if (!found.equals(expect)) {
+ System.err.println("error: unexpected value for " + kind);
+ System.err.println("expect: >>" + expect + "<<");
+ System.err.println(" found: >>" + found + "<<");
+ errors++;
+ }
+ }
+
+ int errors;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/api/6557752/T6557752.java Sat Oct 04 22:48:54 2008 -0700
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 6557752
+ * @summary Test for wrapping the original type in ErrorType.
+ * @library ../lib
+ * @compile T6557752.java
+ * @run main T6557752
+ */
+
+import com.sun.source.tree.AssignmentTree;
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.MethodInvocationTree;
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TreePath;
+import com.sun.source.util.TreePathScanner;
+import com.sun.source.util.Trees;
+import com.sun.tools.javac.api.JavacTaskImpl;
+import com.sun.tools.javac.util.List;
+import java.io.IOException;
+import java.net.URI;
+import javax.lang.model.type.ErrorType;
+import javax.lang.model.type.TypeKind;
+import javax.lang.model.type.TypeMirror;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.ToolProvider;
+import javax.lang.model.util.Types;
+
+public class T6557752 {
+ static class MyFileObject extends SimpleJavaFileObject {
+ public MyFileObject() {
+ super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+ }
+ public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+ return "import java.util.*;\n"
+ + "public class Test {\n"
+ + " void foobar() {\n"
+ + " Iterator<Number> itr = null;\n"
+ + " String str = itr.next();\n"
+ + " FooBar fooBar = FooBar.foobar();\n"
+ + " }\n"
+ + "}";
+ }
+ }
+ static Trees trees;
+ static JavacTask task = null;
+ public static void main(String[] args) throws IOException {
+ JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+ task = (JavacTask) compiler.getTask(null, null, null, null, null, List.of(new MyFileObject()));
+ Iterable<? extends CompilationUnitTree> asts = task.parse();
+ task.analyze();
+ trees = Trees.instance(task);
+ MyVisitor myVisitor = new MyVisitor();
+ for (CompilationUnitTree ast : asts) {
+ myVisitor.compilationUnit = ast;
+ myVisitor.scan(ast, null);
+ }
+
+ if (!myVisitor.foundError) {
+ throw new AssertionError("Expected error not found!");
+ }
+ }
+
+ static class MyVisitor extends TreePathScanner<Void,Void> {
+ public boolean foundError = false;
+ CompilationUnitTree compilationUnit = null;
+ int i = 0;
+ @Override
+ public Void visitMethodInvocation(MethodInvocationTree node, Void ignored) {
+ TreePath path = TreePath.getPath(compilationUnit, node);
+ TypeMirror typeMirror = trees.getTypeMirror(path);
+ if (typeMirror.getKind() == TypeKind.ERROR) {
+ if (i == 0) {
+ String str1 = trees.getOriginalType((ErrorType)typeMirror).toString();
+ if (!str1.equals("java.lang.Number")) {
+ throw new AssertionError("Trees.getOriginalType() error!");
+ }
+
+ Types types = task.getTypes();
+
+ str1 = types.asElement(trees.getOriginalType((ErrorType)typeMirror)).toString();
+ if (!str1.equals("java.lang.Number")) {
+ throw new AssertionError("Types.asElement() error!");
+ }
+
+ i++;
+ }
+ else if (i == 1) {
+ String str1 = trees.getOriginalType((ErrorType)typeMirror).toString();
+ if (!str1.equals("FooBar")) {
+ throw new AssertionError("Trees.getOriginalType() error!");
+ }
+
+ Types types = task.getTypes();
+
+ if (types.asElement(trees.getOriginalType((ErrorType)typeMirror)) != null) {
+ throw new AssertionError("Ttypes.asElement() error!");
+ }
+ foundError = true;
+ }
+ }
+
+
+ return null;
+ }
+
+ }
+}
--- a/langtools/test/tools/javac/foreach/T6500701.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/foreach/T6500701.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Boolean.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Boolean.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Byte.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Byte.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Character.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Character.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Cloneable.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Cloneable.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Integer.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Integer.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Long.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Long.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Main.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Main.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Number.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Number.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Object.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Object.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Serializable.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Serializable.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Short.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Short.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Test.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Test.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/synthesize/Void.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/synthesize/Void.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/langtools/test/tools/javac/unit/util/convert/EnclosingCandidates.java Mon Sep 29 22:10:00 2008 -0700
+++ b/langtools/test/tools/javac/unit/util/convert/EnclosingCandidates.java Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
public class EnclosingCandidates {
- Name.Table names = Name.Table.instance(new Context());
+ Names names = Names.instance(new Context());
void test(String name, String... expected) {
List<Name> result = enclosingCandidates(names.fromString(name));
--- a/langtools/test/tools/javac/versionOpt.sh Mon Sep 29 22:10:00 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-# CA 95054 USA or visit www.sun.com if you need additional information or
-# have any questions.
-#
-
-
-# @test
-# @bug 4461214 6227587
-# @summary support-version and -fullversion
-# @run shell versionOpt.sh
-
-if [ "${TESTJAVA}" = "" ]
-then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTJAVA=${TESTJAVA}"
-
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux )
- NULL=/dev/null
- PS=":"
- FS="/"
- ;;
- Windows* )
- NULL=NUL
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-# create reference files based on java values
-"${TESTJAVA}${FS}bin${FS}java" ${TESTVMOPTS} -version 2>&1 | \
- sed -e 's/java version "\([^"]*\)"/javac \1/' -e '2,$d' > version.ref.out
-
-"${TESTJAVA}${FS}bin${FS}java" ${TESTVMOPTS} -fullversion 2>&1 | \
- sed -e 's/java full version/javac full version/' -e '2,$d' > fullversion.ref.out
-
-# run javac
-"${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -version 2> version.out
-cat version.out
-diff -c version.ref.out version.out
-version_result=$?
-
-"${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -fullversion 2> fullversion.out
-cat fullversion.out
-diff -c fullversion.ref.out fullversion.out
-fullversion_result=$?
-
-if [ $version_result -eq 0 -a $fullversion_result -eq 0 ]
-then
- echo "Passed"
- exit 0
-else
- echo "Failed"
- exit 1
-fi
-
-
-
-
--- a/make/jprt.gmk Mon Sep 29 22:10:00 2008 -0700
+++ b/make/jprt.gmk Sat Oct 04 22:48:54 2008 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it